2012-03-16 4 views
3

У меня есть метка времени php 1331875634 сгенерирована с использованием php time() функция.Разница во времени между метками времени php в часах

У меня есть текущая временная метка, сгенерированная с использованием той же функции.

<?php 
$time1 = "1331875634"; 
$time2 = time(); 

echo $differencem; //time difference in minutes 
echo $differenceh; //time difference in hours 
?> 

Я хочу знать разницу между этими двумя в минутах. Протоколы можно разделить на 60, чтобы сделать это в часах.

+0

Я думаю, что вы не идете через руководство PHP для разницы во времени в php.net. – Ben

ответ

23

Вы получаете разные значения в секундах, если вы их вычтите, поэтому разделите их на 60, чтобы получить минуты и на 60, чтобы получить часы.

4

После того, как мне нужно, чтобы преобразовать секунды времени, как 1 день 03:34:13 дней работы: minuts: secondes

Я написал эту функцию

function sECONDS_TO_HMS($seconds) 
    { 

    $days = floor($seconds/86400); 
    $hrs = floor($seconds/3600); 
    $mins = intval(($seconds/60) % 60); 
    $sec = intval($seconds % 60); 

     if($days>0){ 
      //echo $days;exit; 
      $hrs = str_pad($hrs,2,'0',STR_PAD_LEFT); 
      $hours=$hrs-($days*24); 
      $return_days = $days." Days "; 
      $hrs = str_pad($hours,2,'0',STR_PAD_LEFT); 
    }else{ 
     $return_days=""; 
     $hrs = str_pad($hrs,2,'0',STR_PAD_LEFT); 
    } 

    $mins = str_pad($mins,2,'0',STR_PAD_LEFT); 
    $sec = str_pad($sec,2,'0',STR_PAD_LEFT); 

    return $return_days.$hrs.":".$mins.":".$sec; 
    } 

echo sECONDS_TO_HMS(65); // 00:01:05 
echo sECONDS_TO_HMS(76325); //21:12:05 
echo sECONDS_TO_HMS(345872); // 4 Days 00:04:32 

Я думаю, что это может быть полезно для вас.

+3

'return sprintf ('% s% 02d:% 02d:% 02d', $ return_days, $ hrs, $ mins, $ sec);' и вам не нужна str_pad. – meze

14

Я создал этот код, чтобы взять стандартный PHP UNIX TIMESTAMP, рассчитать разницу во времени и вернуть стандартное время или специализированный формат времени. Это отлично подходит для определения времени проекта и расчета времени, необходимого для получения результатов.

function timerFormat($start_time, $end_time, $std_format = false) 
{  
$total_time = $end_time - $start_time; 
$days  = floor($total_time /86400);   
$hours  = floor($total_time /3600);  
$minutes = intval(($total_time/60) % 60);   
$seconds = intval($total_time % 60);  
$results = ""; 
if($std_format == false) 
{ 
    if($days > 0) $results .= $days . (($days > 1)?" days ":" day ");  
    if($hours > 0) $results .= $hours . (($hours > 1)?" hours ":" hour ");   
    if($minutes > 0) $results .= $minutes . (($minutes > 1)?" minutes ":" minute "); 
    if($seconds > 0) $results .= $seconds . (($seconds > 1)?" seconds ":" second "); 
} 
else 
{ 
    if($days > 0) $results = $days . (($days > 1)?" days ":" day "); 
    $results = sprintf("%s%02d:%02d:%02d",$results,$hours,$minutes,$seconds); 
} 
return $results; 
} 

Example: 

$begin_routine_time = time(); 
echo(timerFormat($begin_routine_time, $time())); 
6
$datetime1 = new DateTime(date('Y-m-d H:i:s', 1331875634)); 
$datetime2 = new DateTime(date('Y-m-d H:i:s')); 
$oDiff = $datetime1->diff($datetime2); 
echo $oDiff->y.' Years <br/>'; 
echo $oDiff->m.' Months <br/>'; 
echo $oDiff->d.' Days <br/>'; 
echo $oDiff->h.' Hours <br/>'; 
echo $oDiff->i.' Minutes <br/>'; 
echo $oDiff->s.' Seconds <br/>'; 
+0

вам нужно добавить это, чтобы получить точную общую часовую разницу. $ TotalDour = {$ oDiff-> y * 365.25 + $ oDiff-> m * 30 + $ oDiff-> d) * 24 + $ oDiff-> h + $ oDiff-> я/60; ' –

Смежные вопросы