2012-03-16 56 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 2012-03-16 05:55:23

回答

23

如果你減去它們,你會得到不同的秒數,所以將它除以60得到分鐘,再乘以60得到小時。

4

一旦我需要轉換秒時間像1天3時34分13秒天小時:分鐘再予: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

'返回sprintf('%s%02d:%02d:%02d',$ return_days,$ hrs,$ mins,$ sec);'並且不需要任何str_pad。 – meze 2012-03-16 06:43:52

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

你需要添加這個來得到確切的總小時差'$ totalHourDiff =($ oDiff-> y * 365.25 + $ oDiff-> m * 30 + $ oDiff-> d)* 24 + $ oDiff-> h + $ oDiff-> I/60;' – 2017-06-05 08:28:55