PHP Date d'intervalle / période de date ne se comporte pas comme prévu
-
13-11-2019 - |
Question
Après avoir effectué des recherches sur DatePeriod, il s'avère que par défaut exclut la fin de fin, même si elle ne déclare pas explicitement que n'importe où dans le manuel PHP. Je n'ai pas non plus remarqué d'option pour l'inclure. La seule option semble être l'option pour exclure la date de début. Quelqu'un d'autre a-t-il rencontré cela?
La solution
tu as oublié l'heure
$start_date = '02/28/2012 00:00:00';
$end_date = '02/29/2012 23:59:59';
$intrDate = '1D';
$start = new \DateTime($start_date);
$end = new \DateTime($end_date);
$interval = new \DateInterval('P'.$intrDate);
$period = new \DatePeriod($start, $interval, $end);
print_r($start_date);
print_r($end_date);
print_r($period);
foreach ($period as $day) {
$dates[] = array(
'eventID' => $event_id,
'date' => $day->format('Y-m-d'),
'max' => $data['numAttending']);
}
print_r($dates);
exit;
Cette sortie:
Array
(
[0] => Array
(
[eventID] =>
[date] => 2012-02-28
[max] =>
)
[1] => Array
(
[eventID] =>
[date] => 2012-02-29
[max] =>
)
)
Sans le temps, vous obtiendrez:
Array
(
[0] => Array
(
[eventID] =>
[date] => 2012-02-28
[max] =>
)
)
Autres conseils
L - si c'est une année de saut
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow