Ir para conteúdo
Fórum Script Brasil
  • 0

Direnças Entre Datas


carol

Pergunta

oi gente,

Como que eu descubro a diferença entre dois horários(em horas e minutos)??? Detalhe: eu especifico uma hora, se ela for menor que a hora atual, eu vou considerar como o dia seguinte...como faço isso?

Abaixo segue o mesmo código em ASP, pra quem souber ASP vai facilitar na hora de me ajudar.

 
Const Horario = "20:00" 
If CDate(Horario) < Time() then 
Diferenca = DateDiff("n",now(),CDate(Horario & " " & cstr(DateAdd("d",1,Date())))) 
Else 
Diferenca = DateDiff("n",time(),Horario) 
End If 

obrigada.

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

carol, dá uma olhada na página sobre a função date no php.net que tem lá uma função que simula a datediff.

Link para o comentário
Compartilhar em outros sites

  • 0

Achei wink.gif

Aqui vai:

<?php
function datediff($interval, $date1, $date2) {
   // Function roughly equivalent to the ASP "DateDiff" function
   $seconds = $date2 - $date1;
   
   switch($interval) {
       case "y":
           list($year1, $month1, $day1) = split('-', date('Y-m-d', $date1));
           list($year2, $month2, $day2) = split('-', date('Y-m-d', $date2));
           $time1 = (date('H',$date1)*3600) + (date('i',$date1)*60) + (date('s',$date1));
           $time2 = (date('H',$date2)*3600) + (date('i',$date2)*60) + (date('s',$date2));
           $diff = $year2 - $year1;
           if($month1 > $month2) {
               $diff -= 1;
           } elseif($month1 == $month2) {
               if($day1 > $day2) {
                   $diff -= 1;
               } elseif($day1 == $day2) {
                   if($time1 > $time2) {
                       $diff -= 1;
                   }
               }
           }
           break;
       case "m":
           list($year1, $month1, $day1) = split('-', date('Y-m-d', $date1));
           list($year2, $month2, $day2) = split('-', date('Y-m-d', $date2));
           $time1 = (date('H',$date1)*3600) + (date('i',$date1)*60) + (date('s',$date1));
           $time2 = (date('H',$date2)*3600) + (date('i',$date2)*60) + (date('s',$date2));
           $diff = ($year2 * 12 + $month2) - ($year1 * 12 + $month1);
           if($day1 > $day2) {
               $diff -= 1;
           } elseif($day1 == $day2) {
               if($time1 > $time2) {
                   $diff -= 1;
               }
           }
           break;
       case "w":
           // Only simple seconds calculation needed from here on
           $diff = floor($seconds / 604800);
           break;
       case "d":
           $diff = floor($seconds / 86400);
           break;
       case "h":
           $diff = floor($seconds / 3600);
           break;        
       case "i":
           $diff = floor($seconds / 60);
           break;        
       case "s":
           $diff = $seconds;
           break;        
   }    
   return $diff;
}
?> 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...