Comment implémenter la fonction?Comment obtenir la date entre 2009-12-25 et 2009-12-30 en PHP?
Donc, il sortira un tableau contenant 2009-12-25 2009-12-26 2009-12-27 2009-12-28 2009-12-29 2009-12-30?
Comment implémenter la fonction?Comment obtenir la date entre 2009-12-25 et 2009-12-30 en PHP?
Donc, il sortira un tableau contenant 2009-12-25 2009-12-26 2009-12-27 2009-12-28 2009-12-29 2009-12-30?
$startdate = strtotime("2009-12-25");
$enddate = strtotime("2009-12-30");
$steps = "1 day";
# Start
$date = $startdate;
while ($date <= $enddate)
{ echo date("Y-m-d", $date)."<br>";
$date = strtotime ("+".$steps, $date); // can be slow with large arrays,
// you can also just add 60*60*24 seconds
// to $date
}
Utilisation mktime
avec une variable incrémenter pour la journée:
$array = array();
for ($x = 25; $x <= 30; $x++) {
$array[] = date('Y-m-d', mktime(0, 0, 0, 12, $x, 2009));
}
Bien sûr, cette approche ne peut pas gérer un cross-over mensuel –
@therefromhere En fait, false, 'mktime (0, 0, 0, 12, 32, 2009)' est le 1er janvier 2010. Si vous recherchez un algorithme "date de début + x jours" ceci est à propos de cette façon la plus simple de le faire. – deceze
De plus, vous pouvez utiliser l'approche similaire à la première réponse.
$startDate = mktime(0, 0, 0, 12, 25, 2009);
$endDate = mktime(0, 0, 0, 12, 30, 2009);
for ($i=$startDate; $i<=$endDate; $i=$i+86400) {
$timeArray[]=date("Y-m-d", $i);
}
Résultat:
array (
0 => '2009-12-25',
1 => '2009-12-26',
2 => '2009-12-27',
3 => '2009-12-28',
4 => '2009-12-29',
5 => '2009-12-30',
)
PHP 5.3, vous pouvez également utiliser la classe DatePeriod.
FYI si ce tableau était très grand, exécuter strtotime() sur chaque élément du tableau peut être lent, alors gardez à l'esprit dans ces situations vous pouvez toujours stocker les dates sans les tirets, toujours en utilisant le format YearMonthDay, et vous pouvez exécuter simple> et
TravisO
C'est vrai. J'ai ajouté un commentaire. –