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
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
Tu n'as pas du chercher longtemps hein ?
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
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
Tout faux.Envoyé par Fladnag
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.
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
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)
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.Envoyé par Moloc'h
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); }
Pensez à la balise
Pourqoui ca ne marche pas ????
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)); }
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 ?
re...
j'ai trouvé ce petit script :
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é !
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); ?>
Est-ce avec un echo ?
Les cours: XHTML, CSS, PHP, Flash et Javascript
Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
Aucune question technique par MP.
ben tu remplacespar
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo diff_date(30,6,2006,2,6,2006);
non? c'est pas ce que tu veux?
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo diff_date(30,6,2006,date("d"),date("m"),date("Y"));
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 !
Les cours: XHTML, CSS, PHP, Flash et Javascript
Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
Aucune question technique par MP.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager