2013-11-20 88 views
-2

我有一個代碼,在那裏將減去Total DurationTotal Time,之後的計算結果將被轉換成秒......PHP:時間/ HH:分:秒轉換爲秒

假設在我Total Duration是 「02:00:00」 然後Total Time是 「01:30:00」

對於計算...

02:00:00 - 01:30:00 = 00:30:00 

然後的結果,「00:30:00 「將被轉換爲秒d結果是「1800」

我該如何轉換它?

感謝您的幫助......

+0

如果你使用PHP的日期/時間函數來執行現有的計算,你應該已經有答案在幾秒鐘內...也許如果你顯示你的代碼,我們可以指出你 –

+0

但持續時間00:30:00不是30秒,它是30分鐘或1800秒 –

+0

@ MarkBaker..oh yeh ..即時通訊抱歉..將編輯問題 – user2826499

回答

1

使用strtotime功能。它返回UNIX時間戳(自1970年1月1日00:00:00以來的秒數)。如果你通過了小時格式HH:MM:SS它,你可以很容易地做數學

$to = strtotime('02:00:00'); 
$from = strtotime('01:30:00'); 

$seconds = $to - $from; // outputs 30 

您認爲格式爲minutes:seconds:miliseconds,你想獲得30 你的情況。其實輸出是30 分鐘。毫秒以點分隔。
你的時間或許應該是這樣的:

$to = strtotime('00:02:00'); 
$from = strtotime('00:01:30'); 
+0

@Matewka ...哈哈抱歉錯誤類型...結果應該是1800 ...雖然我已經編輯它..感謝幫助:D – user2826499

0

你可以試試這個,

$start = '01:30:00'; 
    $end = '02:00:00'; 
    $workingHours = (strtotime($end) - strtotime($start)); 
    $res= date("i", $workingHours); 
    echo "DIFF: ". $res; //OP 30 Minutes 

    echo $resFull= date("H:i:s", $workingHours); //OP 00:30:00 
0

如果您使用的格式HH:MM:SS那麼你可以通過下面的代碼將其轉換爲秒

$timestr = "00:30:00"; 
$temp = explode(":", $timestr); 
if ($temp && is_array($temp) && count($temp) == 3) { 
    $time = intval($temp[0]) * 3600 + intval($temp[1]) * 60 + intval($temp[1]); 
} else { 
    $time = null; 
} 
1

如何使用函數將時間字符串拆分爲三個子字符串(返回一個子字符串數組)

$substrings = new Array(); 
$substrings = explode(":", $timeString); 

現在數組$ substrings包含三個子字符串(小時,分鐘,秒)。 你可以只通過multiplicating計算秒:

$hours = intval($substrings[0]); 
$minutes = intval($substrings[1]); 
$seconds = intval($substrings[2]); 
$seconds = $hours * 3600 + $minutes * 60 + $seconds; 
0

替代與PHP 5.3:

<?php 

try { 
    $date1 = new DateTime('02:00:00'); 
    $date2 = new DateTime('01:30:00'); 

    $diff = $date1->diff($date2); 

    echo $diff->format('H:i:s'); 


} catch (Exception $e) { 
    echo $e->getMessage(); 
    exit(1); 
}