Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
O problema é que não está calculando a diferença entre datas da maneira correta.
Exemplo do que fiz:
$date1 = new DateTime( '04/12/2012' );
$date2 = new DateTime( null, new DateTimeZone( 'America/Sao_Paulo' ) );
$diff = $date2->diff( $date1 );
$diff = $diff->format( '%d' );
echo $diff;
Em vez de dar 30 dias ou 31, sei lá, dá 22.
O que é que está errado?
Também não funciona :/
Resultado: 6015
Com o formato de data "YYYY-MM-DD" funciona normalmente.
Me mostre seu código, por favor?!
$date1 = new DateTime( '2012/12/04' );
$date2 = new DateTime( );
$diff = $date2->diff( $date1 );
echo $diff->days;Acho que é problema com a minha versão do PHP, por que continua dando 6015.
A minha versão é 5.3.5, será que se eu atualizar 5.4 resolveria?
Use...
echo $diff->days;
http://php.net/manual/en/class.dateinterval.php
e para format use...
echo $diff->format( '%a' );
http://php.net/manual/en/dateinterval.format.php