Jump to content
Fórum Script Brasil
  • 0

Direnças Entre Datas


carol

Question

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 to post
Share on other sites

7 answers to this question

Recommended Posts

  • 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 to post
Share on other 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148900
    • Total Posts
      644981
×
×
  • Create New...