Je suis fasse à un problème qui n'en n'est surement pas un mais je n'arrive pas à trouver ce que je veux faire ...
Je m'explique :
Je veut savoir toutes les dates entre deux dates.
Pour cela j'ai trouvé un magnifique script sur internet :
Code : Tout sélectionner
<?php
/**
* function getDatesBetween
* renvoie un tableau contenant toutes les dates, jour par jour,
* comprises entre les deux dates passées en paramètre.
* NB : les dates doivent être au format aaaa-mm-dd (mais on peut changer le parsing)
* @param (string) $dStart : date de départ
* @param (string) $dEnd : date de fin
* @return (array) aDates : tableau des dates si succès
* @return (bool) false : si échec
*/
function getDatesBetween ($dStart, $dEnd) {
$iStart = strtotime ($dStart);
$iEnd = strtotime ($dEnd);
if (false === $iStart || false === $iEnd) {
return false;
}
$aStart = explode ('-', $dStart);
$aEnd = explode ('-', $dEnd);
if (count ($aStart) !== 3 || count ($aEnd) !== 3) {
return false;
}
if (false === checkdate ($aStart[1], $aStart[2], $aStart[0]) || false === checkdate ($aEnd[1], $aEnd[2], $aEnd[0]) || $iEnd <= $iStart) {
return false;
}
for ($i = $iStart; $i < $iEnd + 86400; $i = strtotime ('+1 day', $i) ) {
$sDateToArr = strftime ('%Y-%m-%d', $i);
$sYear = substr ($sDateToArr, 0, 4);
$sMonth = substr ($sDateToArr, 5, 2);
$aDates[$sYear][$sMonth][] = $sDateToArr;
}
if (isset ($aDates) && !empty ($aDates)) {
return $aDates;
} else {
return false;
}
}
$aDates = getDatesBetween ('2006-09-01', '2006-10-31');
//echo '<pre>', print_r ($aDates), '</pre>';
?>
Code : Tout sélectionner
2006 :
09 :
0 = 2006-09-01
1 = 2006-09-02
2 = 2006-09-03
3 = 2006-09-04
4 = 2006-09-05
5 = 2006-09-06
6 = 2006-09-07
7 = 2006-09-08
8 = 2006-09-09
9 = 2006-09-10
10 = 2006-09-11
11 = 2006-09-12
12 = 2006-09-13
13 = 2006-09-14
14 = 2006-09-15
15 = 2006-09-16
16 = 2006-09-17
17 = 2006-09-18
18 = 2006-09-19
19 = 2006-09-20
20 = 2006-09-21
21 = 2006-09-22
22 = 2006-09-23
23 = 2006-09-24
24 = 2006-09-25
25 = 2006-09-26
26 = 2006-09-27
27 = 2006-09-28
28 = 2006-09-29
29 = 2006-09-30
10 :
0 = 2006-10-01
1 = 2006-10-02
2 = 2006-10-03
3 = 2006-10-04
4 = 2006-10-05
etc...
pa rexemple $dates[0] sera la première date, $date[1], la 2eme etc ...
J'espère avior été clair et que qualqu'un aurra la gentilesse de m'aider
Merci d'avance à vous !