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 :

Comparer des dates et des heures


Sujet :

Langage PHP

  1. #1
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Points : 234
    Points
    234
    Par défaut Comparer des dates et des heures
    Bonjour,

    Voila mon problème, en fait je récupère la date stockée dans ma base de données au format DD/MM/YYYY (pour la date du jour donc) et au format HH24:MI (pour l'heure stockée)

    Ce que je voudrais c'est savoir comment comparer la date et l'heure récupée dans la base de données à la date et l'heure actuelle ?

    J'ai bien pensé à un truc du genre (dans le while qui traite les données récupérées après une requête)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (date('d/m/Y') >= $résultat['DATE_RECUPEREE'] && date('H:i') > $resultat['HEURE_RECUPEREE'])
    {
    //blablabla
    }
    mais cela est plus une comparaison d'une date avec une string et d'une heure avec une string non ?

    Si oui quel est le meilleur moyen de faire ? si c'est en effet la bonne façon de faire, je me complique la vie pour rien

    Merci d'avance pour vos réponses

  2. #2
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    ta solution fait bien une comparaison de chaîne, et le résultat n'est pas correct.

    Tu as deux solutions :
    - faire une comparaison de chaînes de caractères avec des données de la forme YmdHi (en reprenant les conventions de la fonction date)
    - faire un comparaison de dates / heures (en transformant ta chaîne en timestamp avec la fonction mktime par exemple)

  3. #3
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Points : 234
    Points
    234
    Par défaut
    j'essaye de transformer ma chaine en date avec mktime() mais je n'arrive pas à le faire.

    J'ai bien vu qu'on pouvait l'utiliser en passant des heures etc en paramètre, mais je ne vois pas comment extraire ma date de la chaine


    faire une comparaison de chaînes de caractères avec des données de la forme YmdHi (en reprenant les conventions de la fonction date)
    Je voudrais bien la tester pour voir ce que ça donne mais je ne comprends pas vraiment comment tu veux faire

    Merci d'avance pour les réponses

  4. #4
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Pour mktime, quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $hour = substr($resultat['HEURE_RECUPEREE'], 0, 2);
    $minute = substr($resultat['HEURE_RECUPEREE'], 3, 2);
    $second = 0;
    $month = substr($résultat['DATE_RECUPEREE'], 3, 2);
    $day = substr($résultat['DATE_RECUPEREE'], 0, 2);
    $year = substr($résultat['DATE_RECUPEREE'], 6, 4);
    $timestamp = mktime  ($hour, $minute, $second, $month, $day, $year);
    if ($timestamp >= time())
    {
    }
    Et pour l'autre solution, comparaison au format YmdHi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $date1 = substr($résultat['DATE_RECUPEREE'], 6, 4).substr($résultat['DATE_RECUPEREE'], 3, 2).substr($résultat['DATE_RECUPEREE'], 0, 2).$resultat['HEURE_RECUPEREE'];
    $date2 = date('YmdH:i');
    if ($date1 >= $date2)
    {
    }

  5. #5
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Points : 234
    Points
    234
    Par défaut
    Merci ça marche impeccable !

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/04/2011, 13h30
  2. [MySQL] le format idéal pour stocker des dates avec l'heure
    Par Philoulheinz dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/02/2007, 21h53
  3. Commande date. Faire des opération sur l'heure?
    Par fidififouille dans le forum Linux
    Réponses: 9
    Dernier message: 23/08/2004, 15h16

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