Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ae galera,
Estou meio confuso aqui, preciso imprimir uma lista contendo os dias decorrentes de 2 datas.
Por exemplo: 10/05/2010 à 07/06/2010
Comecei da seguinte forma:
$d1 = explode("-", $data1);
$d2 = explode("-", $data2);
$dini = mktime(0, 0, 0, $d1[1], $d1[2], $d1[0]); //TimeStamp da data inicial
$dfim = mktime(0, 0, 0, $d2[1], $d2[2], $d2[0]); //TimeStamp da data final
while($dfim <= $dini)
{
//Não sei o que fazer aqui
}Porém isso me gerou um loop infinito e dentro do laço while não consegui retornar os diasentre as datas filtradas....comecei certo?
falcao544 não é a diferença de dias entre duas datas e sim listar
todas os dias entre duas datas, por exemplo: 10/05/2010 à 07/06/2010
No caso minha lista deveria conter:
10/5
11/5
12/5
13/5
14/5
16/5
...
...
...
06/06
07/06
Estou sem tempo agora! amanha eu olho direitinho!
Com DateTime e DateInterval é moleza:
$data_inicial = new DateTime( implode( '-', array_reverse( explode( '/', '10/05/2010' ) ) ) );
$data_final = new DateTime( implode( '-', array_reverse( explode( '/', '07/06/2010' ) ) ) );
while( $data_inicial <= $data_final ) {
echo $data_inicial->format( 'd/m/Y' ) . '<br />' . PHP_EOL;
$data_inicial->add( DateInterval::createFromDateString( '1 days' ) );
}
>
Com DateTime e DateInterval é moleza:
$data_inicial = new DateTime( implode( '-', array_reverse( explode( '/', '10/05/2010' ) ) ) ); $data_final = new DateTime( implode( '-', array_reverse( explode( '/', '07/06/2010' ) ) ) ); while( $data_inicial <= $data_final ) { echo $data_inicial->format( 'd/m/Y' ) . '<br />' . PHP_EOL; $data_inicial->add( DateInterval::createFromDateString( '1 days' ) ); }
[http://www.php.net/manual/en/class.datetime.php](http://www.php.net/manual/en/class.datetime.php) [http://www.php.net/manual/en/class.dateinterval.php](http://www.php.net/manual/en/class.dateinterval.php)
6 anos depois e Voilà!
Vlw!!!
<?
//defino data 1
//defino data 2
//calculo timestam das duas datas
//diminuo a uma data a outra
//converto segundos em dias
$dias_diferenca = $segundos_diferenca / (60 60 24);
//obtenho o valor absoluto dos dias (tiro o possível sinal negativo)
$dias_diferenca = abs($dias_diferenca);
//tiro os decimais aos dias de diferenca