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] difference entre 2 date


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2006
    Messages : 4
    Par défaut [Dates] difference entre 2 date
    salut

    je veux calculer la difference entre 2 date en nombre de jour,de mois et d'anne.j'ai réussi de la calculer en timestamp(en nombre de seconde) mais j'ai pas trouve l'astuce pour convertir en nombre de j , m et a

    j'attend vos aides

    merci

  2. #2
    Membre expérimenté

    Inscrit en
    Mai 2004
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 162
    Par défaut
    Tu n'as pas du chercher longtemps hein ?

  3. #3
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par défaut
    oué ;o)

    un jour c'est quoi ? ca serait pas 24 heures ?
    1 h c'est quoi ? ca serait pas 60 minutes ?
    1 minute c'est quoi ? ca serait pas 60 secondes ?

    raisonnement identique avec les années (365.25 jours) et tu divise par 12 pour les mois

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Par défaut
    C'est clair que tu t'ais pas foulé lol
    En prenant le nombre de secondes que tu as obtenu
    Si tu le divises par 60 tu auras alors le nombre de minutes
    Si tu divises ton nombre de minutes par 60 tu auras le nombre d'heures et ainsi de suite

  5. #5
    Membre expérimenté

    Inscrit en
    Mai 2004
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 162
    Par défaut
    Citation Envoyé par Fladnag
    oué ;o)

    un jour c'est quoi ? ca serait pas 24 heures ?
    1 h c'est quoi ? ca serait pas 60 minutes ?
    1 minute c'est quoi ? ca serait pas 60 secondes ?

    raisonnement identique avec les années (365.25 jours) et tu divise par 12 pour les mois
    Tout faux.

    Il faut passer par la fonction date() à laquelle tu donne les différents paramètres disponibles ( voir ici ), puis tu donnes à cette fonction le timestamp qui t'interesses avec mktime ou bien strtotime

    Au moins tu es certains de gérer correctement les années bisextiles et autres joyeusetées.

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2006
    Messages : 4
    Par défaut
    je sais tout ca mais je veux le nombre de jours, de mois et d'anne

    exemple:
    date1 = '11-12-2005'
    date2 = '20-02_2007'

    je veux le resulat la diffrence est 1 ans,2mois, X jours

    le probleme c que un mois peut avoir 28,29,30,31 jours

  7. #7
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par défaut
    ca c'est la solution "propre" ;o)
    les résultats de ma solution ne sont pas tres éloignés tout de meme, et si la question avait été "je cherche une solution mieux que des multiplications et divisions sauvages", ca aurait été une solution... mais bon... si il se foule pas, moi non plus ;o)

  8. #8
    Membre expérimenté

    Inscrit en
    Mai 2004
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 162
    Par défaut
    Citation Envoyé par Moloc'h
    Au moins tu es certains de gérer correctement les années bisextiles et autres joyeusetées.
    Commencer par lire la doc. Le nombre de jours dans le mois est gérer par la fonction date() en toute transparence. Tu n'as pas à t'en soucier.

  9. #9
    Membre éclairé Avatar de FrankOVD
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juin 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2005
    Messages : 438
    Par défaut
    J'avais fait un truc du genre pour les heures seulement. Comme la fonction date() gère elle même toutes les subtilités de notre calendrierça devrais te servir une bonne base.

    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
     
    //Calcule le temps écoulé à partir de deux heures au format HH:MM
    //Paramètres : string (HH:MM), string (HH:MM)
    //Retourne   : float $duree
    function tempsEcoule($strDebut, $strFin) {
      $arrayDebut = explode(":",urldecode($strDebut));
      $heureDebut = $arrayDebut[0];
      $minuteDebut = $arrayDebut[1];
      $arrayFin = explode(":",urldecode($strFin));
      $heureFin = $arrayFin[0];
      $minuteFin = $arrayFin[1];
      $debut = mktime($heureDebut, $minuteDebut, 0, 11, 30, 2005);
      $fin = mktime($heureFin, $minuteFin, 0, 11, 30, 2005);
      $duree = $fin - $debut;
      $duree /= 3600;
      return($duree);	
    }

  10. #10
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Par défaut Comparaison de date ?
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    // fonction de calcul
     
    function compare_sec($date1,$date2)
     
     {
     
     $date1 = ereg_replace(" ","-",$date1);
     
     $date1 = ereg_replace(":","-",$date1);
     
     $tab_date1 = explode('-',$date1);
     
     $date2 = ereg_replace(" ","-",$date2);
     
     $date2 = ereg_replace(":","-",$date2);
     
     $tab_date2 = explode('-',$date2);
     
      $data1 = mktime ($tab_date1[3],$tab_date1[4],0,$tab_date1[1],$tab_date1[2],$tab_date1[0]);
     
      $data2 = mktime ($tab_date2[3],$tab_date2[4],0,$tab_date2[1],$tab_date2[2],$tab_date2[0]);
     
      $difference = ($data1 - $data2);
     
    echo $difference.'<br />';
     
     return ((int) ($difference));
     
     }
     
    function compare_min($date1,$date2)
     
     {
     
     return ((int) (compare_sec($date1,$date2)/60));
     
     }
     
    function compare_h($date1,$date2)
     
     {
     
     return ((int) (compare_sec($date1,$date2)/3600));
     
     }
    Pourqoui ca ne marche pas ????
    Sur 2 date que je compare d'un différence de environ 32 a 33H ( Hier a 2 H du mat a Aujourd'hui a midi 30 )
    J'obtient 317 626 H de différence je trouve que cela fait bc , qq1 peut m'aider ?

  11. #11
    Membre éprouvé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Par défaut
    re...

    j'ai trouvé ce petit script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <? function diff_date($jour , $mois , $an , $jour2 , $mois2 , $an2){  
     
    	$today = date("d,m,Y");
    	//echo $today; 
     
     
    	$date = mktime(0, 0, 0, $mois, $jour, $an);  
    	$date2 = mktime(0, 0, 0, $mois2, $jour2, $an2);  
     
    	$diff = floor(($date - $date2) / (3600 * 24));  
    	return $diff;
    	}
    	echo diff_date(30,6,2006,2,6,2006);
    ?>
    Il permet de faire la différence entre deux dates ! Cependant j'aimerais savoir comment on pourrait mettre la variable $today à la place du 2,6,2006 ??? : De cette manière, chaque jour la différence entre les deux dates dimininue ! Mais comment on peut faire ? J'y suis pas arrivé !

    Est-ce avec un echo ?

  12. #12
    Membre chevronné Avatar de gofono_bass
    Inscrit en
    Décembre 2005
    Messages
    383
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Décembre 2005
    Messages : 383
    Par défaut
    ben tu remplaces
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo diff_date(30,6,2006,2,6,2006);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo diff_date(30,6,2006,date("d"),date("m"),date("Y"));
    non? c'est pas ce que tu veux?

  13. #13
    Membre éprouvé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Par défaut
    Yes c'est ce que je voulais !!!

    Merci ! Mais pk j'y ai pas pensé lol

    Je pensais qu'il faillait faire un echo !

    Merci bcp !

Discussions similaires

  1. [Dates] Difference entre deux dates
    Par bsidy1 dans le forum Langage
    Réponses: 2
    Dernier message: 10/06/2009, 14h43
  2. [Dates] difference entre 2 dates
    Par kagura dans le forum Langage
    Réponses: 3
    Dernier message: 26/07/2006, 14h01
  3. [Dates] difference entre 2dates
    Par ruty dans le forum Langage
    Réponses: 4
    Dernier message: 13/04/2006, 19h59
  4. Réponses: 2
    Dernier message: 04/04/2006, 11h34
  5. Réponses: 1
    Dernier message: 22/09/2005, 01h30

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