Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Como posso desmembrar um intervalo de data e colocar todas as datas em separado em um array?
Exemplo:
Tenho duas datas, inicial e final
$data_inicial = '2012-09-16';
$data_final = '2012-09-20';
queria desmembrar ela e ter um array como o abaixo:
Array
(
[0] => 2012-09-16
[1] => 2012-09-17
[2] => 2012-09-18
[3] => 2012-09-19
[4] => 2012-09-20
)
Existe alguma função para fazer isso?
Abraço!
>
$d1 = '2012-04-25';
$d2 = '2012-05-09';
$timestamp1 = strtotime( $d1 );
$timestamp2 = strtotime( $d2 );
$cont = 1;
while ( $timestamp1 <= $timestamp2 )
{
echo $cont . ' - ' . date( 'd/m/Y', $timestamp1 ) . PHP_EOL;
$timestamp1 += 86400;
$cont++;
}
Código do amigo @beraldo
Como uma luva!
Funcionou perfeitamente!
Obrigado Vinícius e ao @beraldo por ter compartilhado. :grin:
Cara, você pode usar a classe DateTime
Veja:
<?php
$begin = new DateTime( '2012-09-16' );
$diff = $begin->diff( new DateTime( '2012-09-20' ) );
$dates = array( );
for( $i = $diff->days; $i >= 0; $i-- )
{
$dates[ ] = $begin->format( 'Y-m-d' );
$begin->add( new DateInterval( 'P1D' ) );
}
var_dump( $dates );
?>
Saída:
array
0 => string '2012-09-16' (length=10)
1 => string '2012-09-17' (length=10)
2 => string '2012-09-18' (length=10)
3 => string '2012-09-19' (length=10)
4 => string '2012-09-20' (length=10)
Código do amigo @beraldo