intervalo de data/período de data php não se comportando conforme esperado
-
13-11-2019 - |
Pergunta
Depois de fazer algumas pesquisas sobre Dateperiod, descobriu-se que, por padrão, exclui a data final, mesmo que não indique isso explicitamente em nenhum lugar do manual do PHP.Também não notei nenhuma opção para incluí-lo.A única opção que parece haver é a opção de excluir a data de início.Alguém mais passou por isso?
Solução
você esqueceu a hora
$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;
esta saída:
Array
(
[0] => Array
(
[eventID] =>
[date] => 2012-02-28
[max] =>
)
[1] => Array
(
[eventID] =>
[date] => 2012-02-29
[max] =>
)
)
sem tempo, você obterá:
Array
(
[0] => Array
(
[eventID] =>
[date] => 2012-02-28
[max] =>
)
)
Outras dicas
.l - se é um ano bissexto
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow