• 0
Sign in to follow this  
carol

Direnças Entre Datas

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.

Share this post


Link to post
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Carol,

Eu não programo em ASP não !

Mas mexo com VB e é a mesma coisa !

Entendi o que você pos aí mas no PHP, que eu saiba, não há uma função parecida com o DateDiff ...

Você tem que seguir a lógica dela e fazer um programa só para isso !

Com todas as possibilidades e tal !

Share this post


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

Share this post


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;
}
?> 

Share this post


Link to post
Share on other sites
  • 0

essa mesmo

smile.gif

Share this post


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.

Sign in to follow this