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 2 dates


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2007
    Messages : 56
    Points : 36
    Points
    36
    Par défaut comparer 2 dates
    bonjour à tous,

    j'ai des données qui contiennent un champ date de creation (xxxx,xx,xx).
    je souhaiterais n'afficher que les plus récentes en les comparant avec une date de reference variable (yyyy,yy,yy).
    y'a-t-il une fonction simple qui puisse comparer facilement ces 2 dates ?

    merci pour votre réponse

  2. #2
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut
    Bonjour,

    Tu as deux solutions :

    - Soit t'y vas à la barbare :
    T'exploses des dates par le caractère séparateur (/ ou - généralement)
    Tu le mets dans le sens : année mois jours
    Tu compares tes deux nombres

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $datedebut = 12/08/2008
    $datecomparer = 18/08/2011
     
    $datedebutexploser = 12    08    2008
    $datecomparerexploser = 18   08   2011
     
    $datedebutbonordre = 20080812
    $datecomparerbonordre = 20110818
     
    if($datedebutbonordre > $datecomparerbonordre)
        echo "plus récent";
    else
       echo "plus ancien";
    - Soit tu fais la méthode classe !
    et t'utilises une class (ahaha ^^)
    class date ==> google ==> 30sec
    Après faut connaitre la POO de PHP un minimum mais tu as juste à appeler une méthode.

  3. #3
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    Salut,
    tu peux passer par un Timestamp ou utiliser la classe DateTime.
    En espérant avoir put t'aider

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Voici un exemple d'implémentation avec uasort:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    $data = array(
      array('date' =>  '2011-08-01', 'data' => 'donnée 1'),
      array('date' =>  '2011-07-10', 'data' => 'donnée 2'),
      array('date' =>  '2011-08-23', 'data' => 'donnée 3'),
      array('date' =>  '2011-07-02', 'data' => 'donnée 4'),
      array('date' =>  '2011-08-02', 'data' => 'donnée 5'),
    );
     
    function sort_rows_by_date ($row_a, $row_b) {
      if (!isset($row_a['date'], $row_b['date']))
         return 0;
     
      $date_a = strtotime($row_a['date']);
      $date_b = strtotime($row_b['date']);
     
      if ($date_a == $date_b)
         return 0;
      return $date_a > $date_b ? -1 : 1;
    }
     
    echo "Tableau avant tri: "; var_dump($data); echo "<hr />";
     
    uasort($data, 'sort_rows_by_date');
     
     
    echo "Tableau après tri: "; var_dump($data); echo "<hr />";
    Bien entendu, si tes données proviennent d'une base de données, il vaut mieux mettre une clause ORDER BY sur le champ date en question.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2007
    Messages : 56
    Points : 36
    Points
    36
    Par défaut
    merci les gars !(et pas que les gars d'ailleurs)
    y'a plein de choses différentes, je crois que la barbare fera l'affaire mais j'ai de quoi bricoler au cas ou.


  6. #6
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    (et pas que les gars d'ailleurs)
    Comment ça

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2007
    Messages : 56
    Points : 36
    Points
    36
    Par défaut
    salut benjamin ...je pense qu'il y a des benjamines aussi qui codent ?


    je fais bien la cuisine moi.....

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

Discussions similaires

  1. Comparer des Dates (Access, jdbc)
    Par babylone7 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/07/2005, 10h01
  2. [DB2] - Comparer une date à la date système
    Par rémi_tounul dans le forum DB2
    Réponses: 3
    Dernier message: 19/05/2005, 11h45
  3. Comparer deux dates
    Par LoicH dans le forum C++Builder
    Réponses: 4
    Dernier message: 04/03/2005, 22h53
  4. [Date] Comparer des dates au format mySQL "date
    Par Marc_P dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 25/10/2004, 15h15
  5. comment comparer deux dates?
    Par billoum dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/08/2004, 21h08

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