我想在php中添加時間,但經過幾個小時的google'ing並嘗試我仍然無法找到解決方案。在php中添加時間
我的價值觀是:
$newTotal = '00:45:00';
$oldTotal = '00:16:00';
我想補充這兩個了,這使得1時01分00秒。
你能給我一個例子,我真的很絕望! :P
在此先感謝,
我想在php中添加時間,但經過幾個小時的google'ing並嘗試我仍然無法找到解決方案。在php中添加時間
我的價值觀是:
$newTotal = '00:45:00';
$oldTotal = '00:16:00';
我想補充這兩個了,這使得1時01分00秒。
你能給我一個例子,我真的很絕望! :P
在此先感謝,
保持最小錯誤的開始日期。
<?php
$origin = '00:00:00';
$newTotal = '00:45:00';
$oldTotal = '00:16:00';
$added = strtotime($newTotal) + (strtotime($oldTotal) - strtotime($origin));
echo date('H:i:s', $added);
輸出:
01:01:00
注意,如果你的時間超過23:59:59加入後,你會得到錯誤的結果。
如果這些值總是看起來像,你可以打破他們用SUBSTR()
$hours1 = substr($newTotal, 0, 2);
等,然後簡單地加起來秒,做一個分而治之,泡個時間,瞧!
$secondstotal = $seconds1+$seconds2;
$restseconds = $secondstotal % 60;
$minutesfromseconds = floor($restseconds/60);
$minutestotal = $minutes1+$minutes2+$minutesfromseconds;
等
使用strtotime()
把它們變成Unix的時間戳,然後將其添加爲整數:
$newTotal = '00:45:00';
$oldTotal = '00:16:00';
$total = strtotime($newTotal) + strtotime($oldTotal);
要重新格式化爲hh:mm:ss
,使用date()
:
echo date('H:i:s', $total);
這給出:
1時01分00秒
無時間函數另一種解決方案:
function sumtotal($a,$b) {
$i = explode(':',$a);
$j = explode(':',$b); // 0hh:1mm:2ss
$k = array(0,0,0,0); // 0days:1hours:2minutes:3seconds
$k[3] = $i[2]+$j[2];
$k[2] = (int)($k[3]/60)+$i[1]+$j[1];
$k[1] = (int)($k[2]/60)+$i[0]+$j[0];
$k[0] = (int)($k[1]/24);
$k[3] %= 60;
$k[2] %= 60;
$k[1] %= 24;
if ($k[3]<10) $k[3] = '0'.$k[3];
if ($k[2]<10) $k[2] = '0'.$k[2];
if ($k[1]<10) $k[1] = '0'.$k[1];
return $k[0].' days : '.$k[1].' hours : '.$k[2].' minutes : '.$k[3].' seconds';
}
$newTotal = '01:45:21';
$oldTotal = '03:16:56';
echo sumtotal($newTotal,$oldTotal); // result: 0 days : 05 hours : 02 minutes : 17 seconds
感謝這實際上爲我工作! – Ziras
它也可以添加日期嗎?所以當它過去的24小時它增加了一天? – Ziras