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 :

Vérifier si la date reçue en paramètre est supérieure à aujourd'hui [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Vérifier si la date reçue en paramètre est supérieure à aujourd'hui
    Bonjour tout le monde,

    J'aimerais tester si une date reçue en paramètre (exemple 12-2-2009) est supérieure à aujourd'hui (26-12-2009).

    Je pourrais faire un explode par rapport aux tirets (-) et ensuite contrôler si l'année est supérieure...

    Je me demandais si en PHP il y avait une fonction qui faisait cela ?

    Merci d'avance.

    beegees

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux comparer les timestamp de chaque date, par contre, il faudrait repasser ta date au format AAAA-MM-DD
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu peux comparer les timestamp de chaque date, par contre, il faudrait repasser ta date au format AAAA-MM-DD
    Re-bonjour Sabotage,

    J'ai trouvé cette solution qui me semble fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
     
    	$jour_auj = date(j);
    	$mois_auj = date(n);
    	$annee_auj = date(Y);
     
    	$date1 = $jour_auj.'-'.$mois_auj.'-'.$annee_auj;
    	$date2 = $_POST['la_date_complete'];
     
    	//permet de vérifier que la date choisie n'est pas inférieure à la date d'aujourd'hui.
    	if(strtotime($date2) > strtotime($date1))
    	 echo 'OK';
    	else
    	 echo 'PASOK';
    ?>
    ça te semble correcte ?

    Encore un grand merci à toi.

    beegees

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    J'en dis que attention avec strtotime, la doc précise "une date au format US" sans dire vraiment ce qui est attendu.

    JJ-MM-AAAA fonctionne mais pas JJ-MM-AA
    Par exemple :
    "02-03-2004" c'est le 2 mars 2004
    "02-03-04" c'est le 4 mars 2002
    "02/03/2004" c'est 3 février 2004

    il faut donc etre sur que ton utilisateur fournisse une année sur 4 chiffres.

    sinon pour ton code, tout le début est superflu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
     	$date2 = $_POST['la_date_complete'];
    	if(strtotime($date2) > mktime())
    	 echo 'OK';
    	else
    	 echo 'PASOK';
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re,

    Merci pour ta réponse.

    Citation Envoyé par sabotage Voir le message

    il faut donc etre sur que ton utilisateur fournisse une année sur 4 chiffres.
    L'utilisateur a le choix entre l'année en cours et l'année en cours +1 sur 4 chiffres (liste déroulante).

    sinon pour ton code, tout le début est superflu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
     	$date2 = $_POST['la_date_complete'];
    	if(strtotime($date2) > mktime())
    	 echo 'OK';
    	else
    	 echo 'PASOK';
    ?>
    Merci, cela m'aide beaucoup et j'apprends donc que mktime() me donne la date d'aujourd'hui.

    Bonne soirée.

    beegees

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    En fait mktime() sert a constuire des timestamp, et sans arguments il donne celui de maintenant.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. [SP-2010] Workflow : action si champ date est égal à aujourd'hui
    Par Gratiano dans le forum SharePoint
    Réponses: 1
    Dernier message: 20/06/2014, 13h52
  2. [IP-2003] Validation de données : Date supérieure à aujourd'hui
    Par Romeoo dans le forum InfoPath
    Réponses: 2
    Dernier message: 06/07/2009, 12h05
  3. Pourquoi c'est seulement aujourd'hui qu'on parle de mashup?
    Par kisitomomotene dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 05/08/2008, 12h08
  4. [Information OVH] Votre .fr est gratuit aujourd'hui
    Par martialuk dans le forum OVH
    Réponses: 2
    Dernier message: 10/01/2008, 23h01
  5. Réponses: 11
    Dernier message: 30/05/2007, 15h32

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