Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
estou utilizando esta funçaõzinha para retornar a quantidade de meses, dias, semanas, horas e segundos, mas nao sei o que estou fazendo de errado. Na data de exemplo era para dar 2 meses, mas sempre retorna como 2 semanas e 3 dias
>
<?
$epoch_1 = mktime(13,00,00,3,1,2015);
$epoch_2 = mktime(13,00,00,1,1,2015);
$diff_seconds = $epoch_1 - $epoch_2;
$diff_months = floor($diff_seconds/18144000);
$diff_seconds -= $diff_months * 18144000;
$diff_weeks = floor($diff_seconds/604800);
$diff_seconds -= $diff_weeks * 604800;
$diff_days = floor($diff_seconds/86400);
$diff_seconds -= $diff_days * 86400;
$diff_hours = floor($diff_seconds/3600);
$diff_seconds -= $diff_hours * 3600;
$diff_minutes = floor($diff_seconds/60);
$diff_seconds -= $diff_minutes * 60;
print "As duas datas têm $diff_months meses, $diff_weeks semanas, $diff_days dias, ";
print "$diff_hours horas, $diff_minutes minutos e $diff_seconds ";
print "segundos de diferença.";
?>
saida é As duas datas têm 0 meses, 8 semanas, 3 dias, 1 horas, 0 minutos e 0 segundos de diferença.
so que neste caso, so tenho a data
precisso calcular a diferença entre horas tbm
a data tem que ter as horas 2014-03-03 22:45:13
Funciona da mesma forma:
$date = new DateTime('2014-03-03 22:45:13');//Necessita ser no formato 24 horas
ou
$date = DateTime::createFromFormat('Y-m-d H:i:s' , '2014-03-03 22:45:13');
O resultado é o mesmo.
E ai programador, há um forma simples e melhor de se fazer isto.
para calcular a quantidade de semana
$qntSemana = round( $dif['d'] / 7 );
Experimenta aí.