IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Dates] comment vérifier la validité d'une date en php


Sujet :

Langage PHP

  1. #1
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut [Dates] comment vérifier la validité d'une date en php
    Bonjour,

    je dois vérifier la validité d'une date en php...
    j'ai trouvé ceci dans la Faq

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $date = "17/06/2006";
    list($jour, $mois, $annee) = explode('/', $date);
    if(checkdate($mois,$jour,$annee))
    {
      echo "date valide";
    }
    else
    {
      echo "date non valide";
    }
    mais je trouve cela totalement inutile car si ma date est non valide
    exemple: quelqu'un rentre du texte dans ma case date, j'ai forcément cette erreur-ci:

    Warning: checkdate() expects parameter 2 to be long, string given in /home/www/....... on line 102

    comment puis je donc vérifier une date?

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    [Freestyle mode] (oui car c est la premiere idee qui me vient elle pourrait s averer pourave)
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $date = "17/06/2006";
    list($jour, $mois, $annee) = explode('/', $date);
    if(checkdate($mois,$jour,$annee) or die ("Date format invalide"))
    {
      echo "date valide";
    }
    else
    {
      echo "date non valide";
    }
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut
    ca fonctionne pas mieux

    j'ai toujours le message d'erreur.

    il n'existe pas un espece de try catch en php?
    ou une toute autre methode me permettant de verifier la validité d'un date: peut etre la simple decoupe de caractere, mais je suis pas doué en php

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    Salut,

    tu as essayé en convertissant la chaîne en double?

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $annee = (double) $annee;

  5. #5
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Citation Envoyé par cortex024
    il n'existe pas un espece de try catch en php?
    Je pensais sur l instant que le 'or die' ferait office de try/catch lol
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Oui effectivement si le format n'est pas valide, on peut avoir des surprises (certaines variables $mois, $jour ou $annee n'existeront alors pas). C'est pourquoi j'ajouterais un test du format avec preg_match :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $date = "17/06/2006";
    if (preg_match('#^([0-9]{2})([/-])([0-9]{2})\2([0-9]{4})$#', $date, $m) == 1 && checkdate($m[3], $m[1], $m[4])) {
    {
      echo "date valide";
    }
    else
    {
      echo "date non valide";
    }

    Julp.

  7. #7
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut
    Parfait Julp!!!


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] Comment tester la validité d'une date ?
    Par Zefree dans le forum ASP.NET
    Réponses: 5
    Dernier message: 15/12/2012, 15h49
  2. Vérifier la validité d'une date
    Par Agoye dans le forum Langage SQL
    Réponses: 9
    Dernier message: 04/06/2008, 18h00
  3. Réponses: 10
    Dernier message: 16/05/2008, 19h29
  4. vérifier la validité d'une date
    Par youp_db dans le forum Langage
    Réponses: 1
    Dernier message: 04/10/2006, 11h38
  5. vérifier la validité d'une date
    Par griese dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/06/2006, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo