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 :

Détecter si une date est supérieure à une autre


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Détecter si une date est supérieure à une autre
    salut ! moi je ne m'en sort pas avec ce code...
    je suis débutant et mon site ressemble pourtant a quelques chose.. besoin de vous pour le back office merci merci


    l'utilisateur a deux calendriers permettant le choix de deux dates; debut et fin sejour dans l'hotel.

    si l'un des deux vide
    si date debut inferieure date aujourd'hui
    si date debut superieure ate fin de sejour


    c'est au deuxième si que je bloque.
    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
    27
    28
    29
    30
    31
    32
    33
    34
    if (!isset ($_SESSION['resa1ok']))
     {
      if(!empty($_POST['debutSejo']) && !empty($_POST['finSejo'])) 
       {
        if(strtotime($_POST['debutSejo']) > date("d/m/Y",mktime(0,0,0,date         ("m"),date("d")+1,date("Y"))))
         {
          if(strtotime($_POST['debutSejo']) < strtotime($_POST['finSejo']))
           {
            $_SESSION['debutSejo']=$_POST['debutSejo'];
            $_SESSION['finSejo']=$_POST['finSejo'];
            $_SESSION['nbadlt']=$_POST['nbadlt'];
            $_SESSION['nbenf']=$_POST['nbenf'];
            $_SESSION['resa1ok']='yes';
            include"./corps/resa/form2.php";
           }
          else
           {
            echo"<FONT color='red'><B>La date de fin de séjour doit être supérieure à la date de début de séjour.</B></FONT>";
            include"./corps/resa/resa1.php";
           }
          } 
         else
          {
           echo"<FONT color='red'><B>Une réservation par internet se fait au minimum 2jours à l'avance; pour plus de réactivité, 
           contactez nous par téléphone.</B></FONT>";
           include"./corps/resa/resa1.php";
          }
         }
      else
       {
        echo"<FONT color='red'><B>Définissez une période de vacances.</B></FONT>";
        include"./corps/resa/resa1.php";
       }
     }

  2. #2
    M.Gaetan89
    Invité(e)
    Par défaut
    Bonsoir,

    Quel est ton problème exactement ? Ca pourrait aider à proposer une solution

  3. #3
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Il suffit de comparer des dates dans le format ANNÉE - MOIS - JOUR HEURE : MINUTES : SECONDES

    Si ce n’est pas le cas, un petit traitement de chaîne pour formater correctement.

    Je pense que les séparateurs peuvent être quelconques, mais il faut que les dates comparées soient homogènes.



    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
    27
    28
    29
    30
    <?php
    $array = array('1766/12/13 23:12:55','1998/03/31 12:45:32','2008/12/25 12:45:02',
    '3008/07/17 13:56:00','2009/10/03 12:34:54','2010/09/12 23:32:17',
    '2010/09/12 23:33:17','2013/09/27 05:34:11');
     
    $jour2 = '2010/09/12 23:32:18';
     
    foreach($array as $jour1){
    	if ($jour1<$jour2){
    		echo '<FONT color="green">'.$jour1.'</FONT>  est anterieur a  '.$jour2.'<br/>';}
    	else{
    		echo '<FONT color="red">'.$jour1.'</FONT>  est posterieur a  '.$jour2.'<br/>';}
    }
     
    echo '<br/><br/>';
     
    $array = array('1766-12-13 23h12mn55','1998-03-31 12h45mn32','2008-12-25 12h45mn02',
    '3008-07-17 13h56mn00','2009-10-03 12h34mn54','2010-09-12 23h32mn17',
    '2010-09-12 23h33mn17','2013-09-27 05h34mn11');
     
    $jour2 = '2010-09-12 23h32mn18';
     
    foreach($array as $jour1){
    	if ($jour1<$jour2){
    		echo '<FONT color="green">'.$jour1.'</FONT>  est anterieur a  '.$jour2.'<br/>';}
    	else{
    		echo '<FONT color="red">'.$jour1.'</FONT>  est posterieur a  '.$jour2.'<br/>';}
    }
     
    ?>

    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
    1766/12/13 23:12:55 est anterieur a 2010/09/12 23:32:18
    1998/03/31 12:45:32 est anterieur a 2010/09/12 23:32:18
    2008/12/25 12:45:02 est anterieur a 2010/09/12 23:32:18
    3008/07/17 13:56:00 est posterieur a 2010/09/12 23:32:18
    2009/10/03 12:34:54 est anterieur a 2010/09/12 23:32:18
    2010/09/12 23:32:17 est anterieur a 2010/09/12 23:32:18
    2010/09/12 23:33:17 est posterieur a 2010/09/12 23:32:18
    2013/09/27 05:34:11 est posterieur a 2010/09/12 23:32:18
    
    
    1766-12-13 23h12mn55 est anterieur a 2010-09-12 23h32mn18
    1998-03-31 12h45mn32 est anterieur a 2010-09-12 23h32mn18
    2008-12-25 12h45mn02 est anterieur a 2010-09-12 23h32mn18
    3008-07-17 13h56mn00 est posterieur a 2010-09-12 23h32mn18
    2009-10-03 12h34mn54 est anterieur a 2010-09-12 23h32mn18
    2010-09-12 23h32mn17 est anterieur a 2010-09-12 23h32mn18
    2010-09-12 23h33mn17 est posterieur a 2010-09-12 23h32mn18
    2013-09-27 05h34mn11 est posterieur a 2010-09-12 23h32mn18

  4. #4
    Membre actif Avatar de firehist
    Homme Profil pro
    Intégrateur Web Freelance
    Inscrit en
    Février 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur Web Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 151
    Points : 214
    Points
    214
    Par défaut
    MMh!

    Moi sincèrement même si c'est quelques lignes en plus, je passerai avec un explode et je comparerai le mktime en seconde.

    J'ai jamais eu confiance au comparaison de chaîne de caractère =D

Discussions similaires

  1. Vérifier qu'une date est supérieure à la date actuelle
    Par lamis2009 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 24/05/2010, 13h18
  2. Réponses: 4
    Dernier message: 12/11/2008, 17h21
  3. [Débutant] Calcul d'une date à partir d'une date de départ et d'une durée
    Par Marmotton76 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/04/2007, 10h39
  4. Réponses: 2
    Dernier message: 21/03/2007, 16h06
  5. Réponses: 14
    Dernier message: 09/01/2007, 16h19

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