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] comparaison entre deux dates de type timestamp


Sujet :

Langage PHP

  1. #1
    Membre averti
    Avatar de witch
    Inscrit en
    Mai 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 346
    Points : 335
    Points
    335
    Par défaut [Dates] comparaison entre deux dates de type timestamp
    Salut
    j'aimerais comparer deux date, j'utilise pour ça le timestamp, ce que je veux avoir plus précisémment, c'est de faire un traitement, quand la date que j'ai est inférieure ou égale à la date d'ici avant 30 jours, par exemple afficher un message...
    je mets ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $time_before_30=time()-(3600*24*30) ;
     
    $time= strtotime("12-01-2010");
     
    if($time-$time_before_30 <=0 )
    {
     
        echo "ce jour depasse les 30 jours prevus!!";
     
        }
            else
            {
            echo "pas de panique!";
            }
    que je change la date en 2001 ou que je l'a change en 2010 ça me renvoie toujours le deuxième message
    bizarre ce truc
    If a pretty poster and a cute saying are all it takes to motivate you, you probably have a very easy job. The kind robots will be doing soon.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Points : 631
    Points
    631
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
     
      $limite = strtotime('31 january 2008');
      $maintenant = time();
     
      if ($maintenant > $limite) echo 'Les 30 jours sont écoulés!';
      else echo 'Votre abonnement est valable jusqu\'au '.date('d/m/Y', $limite).'.';
     
    ?>
    Cordialement,
    DaRiaN.

  3. #3
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 150
    Points
    150
    Par défaut
    Bonjour,

    D'après ce que j'ai lu sur la documentation php, strtotime ça dit :

    Transforme un texte anglais en timestamp.

    Donc j'ai testé votre code avec la forme de date 12-01-2000. Cela ne fonctionne pas en effet.

    Par contre, si je passe la date sous la forme 12/01/2000, ça fonctionne bien.
    D'autant plus, il faut prendre en compte que la date doit être mise au format anglais.
    Soit pour le 10 janvier 2000, mettre : 01/10/2000 . A savoir le mois, puis le jour, et terminer par l'année.

    Si la date, que vous envoyez, n'est pas sous le format anglais ou doit forcément comporter une séparation par un tiret, vous pouvez faire ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $time_before_30=time()-(3600*24*30) ;
     
    $Date = "12-01-2010";
     
    $DateExplode = explode("-",$Date);
    $time = mktime(0,0,0,$DateExplode[1],$DateExplode[0],$DateExplode[2]);
     
    if($time-$time_before_30 <=0 )
    	echo "ce jour depasse les 30 jours prevus!!";
    else
    	echo "pas de panique!";

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Points : 631
    Points
    631
    Par défaut
    Pour rester dans votre exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     
      /* savoir si $time est compris entre maintenant
         et il y a 30 jours */
     
      $time_before_30 = time()-(86400*30);
      $time = strtotime('1 december 2007');
     
      if ($time <= $time_before_30) echo 'pas de panique!';
      else echo 'ce jour depasse les 30 jours prevus!!';  
     
    ?>
    Je vous signale que vous faites une soustraction et non une addition, donc vous cherchez a savoir si la date x est comprise entre il y a 30 jours et maintenant, et non pas entre maintenant et dans 30 jours.

  5. #5
    Membre averti
    Avatar de witch
    Inscrit en
    Mai 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 346
    Points : 335
    Points
    335
    Par défaut
    En effet, c'est ce que je trouvais bizarre, et puis sur la doc on n'était pas clair, sur que cette format, n'est pas bonne, bref, j'ai utilisé le mktime à la place, ça marche parfaitement
    Merci tout de même pour vos reponses
    If a pretty poster and a cute saying are all it takes to motivate you, you probably have a very easy job. The kind robots will be doing soon.

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

Discussions similaires

  1. [phpMyAdmin] Comment vider une table entre deux dates ou entre deux id avec phpMyAdmin
    Par patrmich dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 24/05/2014, 14h48
  2. [Dates] Comparaison entre deux dates
    Par Cdic83 dans le forum Langage
    Réponses: 1
    Dernier message: 24/05/2009, 21h32
  3. erreur comparaison entre deux date
    Par offspring dans le forum JDBC
    Réponses: 7
    Dernier message: 06/06/2008, 09h23
  4. Comparaison entre deux dates
    Par sylvaindenisbe dans le forum VBA Access
    Réponses: 28
    Dernier message: 14/05/2007, 16h31
  5. Comparaison entre deux dates dans une table
    Par Biskot75 dans le forum Access
    Réponses: 6
    Dernier message: 19/09/2006, 11h16

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