bonsoir,
Je cherche une fonction qui retourne le nombre de jours compris entre deux dates précises par exemple on lui donne deux date et il nous retourne le nombre de jour qu'il y a entre les deux dates... Merci beaucoup de m'aider...![]()
bonsoir,
Je cherche une fonction qui retourne le nombre de jours compris entre deux dates précises par exemple on lui donne deux date et il nous retourne le nombre de jour qu'il y a entre les deux dates... Merci beaucoup de m'aider...![]()
Je t'ai adapté ci-dessous le code que j'utilise habituellement :
J'ai pas testé ce code, d'habitude je l'utilise en POO. Après, je pense qu'il doit exister une fonction toute faite en 5.3 avec DateTime, mais je ne la connais 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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 /** * convertir une date en timestamp * @param datetime * @return string */ function toTimestamp($date) { list($year, $month, $day, $hour, $minute, $second) = array_values($date); return mktime($hour, $minute, $second, $month, $day, $year); } /*** * Calcule la différente entre deux dates * @param datetime $date1 date 1 * @param datetime $date2 date 2 * @param string $typeStep type de différence (mois, annee...) * @param integer $valueStep "pas" de différence. Par exempel, pour un trimestre, mettre $typeStep à 'month' et $valueStep à "3" * @param string $round floor|ceil|(nothing|no|null) * @return integer */ function getDifference($date1, $date2, $typeStep='month', $valueStep = 1,$round='floor') { $b1 = toTimestamp($b1); $b2 = toTimestamp($b2); $multiplier = 0; switch($typeStep) { case 'second': $multiplier = 1; break; case 'minute': $multiplier = 60; break; case 'hour': $multiplier = 60*60; break; case 'day': $multiplier = 60*60*24; break; case 'week': $multiplier = 60*60*24*7; break; case 'month': $multiplier = 2628000; break; case 'quarter': $multiplier = 2628000 * 4; break; case 'year': $multiplier = 31536000; break; } $n = ($b2 - $b1) / $multiplier; switch($round) { case 'ceil': $n = ceil($n); break; case 'floor': $n = floor($n); break; default: $n = ceil($n); break; } return $n; }
Bonsoir,
Voila j'ai réglé le problème grace à un truc simple qui est:
et votre solution aussi devrais marcher, merci beaucoup pour votre aide....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 round((strtotime('2010-06-05') - strtotime('2010-05-30'))/(60*60*24)-1)+2;
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