Estou começando com uma data 2010-05-01
e terminando com 2010-05-10
. Como posso iterar todas essas datas no PHP?
207
Requer PHP5.3:
$begin = new DateTime('2010-05-01');
$end = new DateTime('2010-05-10');
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($begin, $interval, $end);
foreach ($period as $dt) {
echo $dt->format("l Y-m-d H:i:s\n");
}
Isso produzirá todos os dias no período definido entre $start
e $end
. Se você deseja incluir o 10º, defina $end
como 11º. Você pode ajustar o formato ao seu gosto. Veja o Manual do PHP para DatePeriod .
$begin->setTime(0,0); $end->setTime(12,0);
ou inicializando com a hora do dia da data de início, pois qualquer hora posterior à data de término incluirá a data de término no loop. Não é a solução mais elegante, mas é a melhor opção, desde que não haja uma bandeira adequada.Isso também inclui a última data
Se você não precisar da última data, remova
=
-a da condição.fonte
$begin
será diferente após o loop. Este loop modifica o objeto criado pornew DateTime( "2015-07-03" )
. Por isso, você deve usar as versões DateTimeImmutable. Mas você precisa de mais algumas modificações para usá-las.A conversão para timestamps unix facilita a matemática de datas no php:
Ao usar o PHP com um fuso horário com horário de verão, certifique-se de adicionar um horário que não seja 23:00, 00:00 ou 1:00 para se proteger contra dias pulados ou repetidos.
fonte
Copie da amostra php.net para um intervalo inclusivo :
fonte
ou
fonte
Aqui está outro simples -
Exemplo:
fonte
Utiliza esta função: -
Chamada de uso / função: -
Aumentar em um dia: -
Aumento por mês: -
use o terceiro parâmetro se desejar definir o formato da data: -
fonte
aqui está uma maneira:
O resultado de $ weekendsInMoth é uma variedade de dias de fim de semana!
fonte
Você também pode fazer a iteração, O
$_POST['date']
aplicativo pode ser amassado no seu aplicativo ou site. Em vez de$_POST['date']
você também pode colocar sua string aqui"21-12-2019"
. Ambos irão funcionar.fonte
Se você usa o Laravel e deseja usar o Carbon, a solução correta seria a seguinte:
Lembre-se de adicionar:
fonte
fonte