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


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 77
    Par défaut [Dates] Comparer 2 dates
    Voila. je dois vérifier deux dates d'exercices.
    Si la date de début d'exercice est par exemple 01/06/2006, la fin d'exercice doit être 31/05/2007.
    Je dois vérifier que la date de fin saisi est bien 31/05/2007.
    Comment puis-je faire ?

  2. #2
    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 : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Par défaut
    Salut melisse!
    je vois pas trop le problème:
    mais si tu veux controler le format de ta variable tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	if(strlen(ereg_replace('[^0-9]','',$YYYYMMDD))==8)	
    	{
    		$res[]=substr($YYYYMMDD,0,4);
    		$res[]=substr($YYYYMMDD,4,2);
    		$res[]=substr($YYYYMMDD,6,2);
     
    		if ($res[1]==$month){...}
    	}
    (en mieux bien sûr )
    Si tu veux comparer deux dates, tu peut utiliser leur timestamp c'est le plus simple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (time($fin)!=time($fin_saisie) {//alors je fais ça....}
    bon dev'

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 77
    Par défaut
    J'ai déja vérifier le format de la date. Si tu veux l'utilisateur saisi une date de début d'exercice et une date de fin d'exercice.
    Je dois vérifier que la différence entre la date de fin et la date de début est équivalent à 1 année.
    exemple :
    date_debut = 01/02/2005
    date_fin = 31/01/2006
    Il y a bien 1 an entre ses 2 dates
    autre exemple :
    date_debut = 01/06/1999
    date_fin = 30/04/2000
    il n'y a pas 1 an entre les 2 dates, la date de fin devrai être 31/05/2000.

  4. #4
    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 : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Par défaut
    Dans ma reponse precedente, je me suis trompe: on utilise pas time() comme ca mais plutôt mktime():
    (PHP 3, PHP 4, PHP 5)
    mktime -- Retourne le timestamp UNIX d'une date
    Description
    int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )
    Donc, je peux te proposer en solution simple (a tester pour voir sa valeur):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $date_debut = mktime(0,0,0,$debut[mois],$debut[jour],$debut[année]);
    $date_fin = mktime(0,0,0,$fin[mois],$fin[jour],$fin[année]);
    $temp = $date_fin - $date_debut;
    $timestamp_1_annee = mktime(0,0,0,1,1,2001) - mktime(0,0,0,1,1,2000);//:aie: 
    if ($temp > $timestamp_1_annee){...}else{...}
    faudrait voir les ofnctions toutes faites sur le net...

  5. #5
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Par défaut
    Pour comparer deux dates il y'a la fonction getTime() qui convertit une date en milliseconde. Tu passes tes deux dates en milliseconde tu les soustraits l'une à l'autre et tu le repasse en jour en multipliant par 1000*60*60*24 si c'est supérieur à 365 alors c'est bon sinon c'est que c'est moins d'une année.

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 77
    Par défaut solution
    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
     
    	function exercice ($date1,$date2){
    		list ($jour, $mois, $annee) = split ('/', $date1);
    		$year = $annee + 1;
    		$date_reel = mktime(0,0,0,$mois,0,$year);
    		$month = $mois - 1;
    		if (strlen($month)==1){
    			$month = "0".$month;
    		}
    		$date_reel = strftime ("%d", $date_reel)."/".$month."/".$year;
    		if ($date_reel == $date2){
    			return true;
    		}else{
    			return false;
    		}
    	}

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

Discussions similaires

  1. [Dates] Comparer deux dates
    Par pierrot10 dans le forum Langage
    Réponses: 2
    Dernier message: 12/07/2007, 08h23
  2. [Dates] Comparer la date de création d'une image
    Par pierrot10 dans le forum Langage
    Réponses: 1
    Dernier message: 11/07/2007, 16h24
  3. [Dates] compare avec date actulle
    Par arti2004 dans le forum Langage
    Réponses: 3
    Dernier message: 21/11/2006, 10h09
  4. [Dates] comparer deux date
    Par BigBarbare dans le forum Langage
    Réponses: 2
    Dernier message: 04/04/2006, 23h05
  5. [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

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