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; }
Zend PHP Certified Engineer, Certifié Symfony2
blog : blog.lepine.pro
Secrétaire de l'AFUP (Association des Utilisateurs de PHP)
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