在我的PHP應用程序中,我想計算兩個時間變量的總和。我正在尋找這樣的例子。PHP加起來兩個時間變量
$time1 = 15:20:00;
$time2 = 00:30:00;
$time = $time1+$time2;
在我的PHP應用程序中,我想計算兩個時間變量的總和。我正在尋找這樣的例子。PHP加起來兩個時間變量
$time1 = 15:20:00;
$time2 = 00:30:00;
$time = $time1+$time2;
做到這一點,最好的方法是最有可能使用的strtotime將它們轉換爲時間標記,然後進行相加在一起:
$o = strtotime($time1)+strtotime($time2);
如果我記得沒錯strtotime
不支持此格式。
否則,您需要自行過濾。
你可以使用PHP 5.3 DateInterval
:
$timeInterval = DateInterval::createFromDateString('15 hours + 20 minutes');
$timeInterval2 = DateInterval::createFromDateString('30 minutes');
foreach(str_split('ymdhis') as $prop)
{
$timeInterval->$prop += $timeInterval2->$prop;
}
var_dump($timeInterval->format('%H:%i:%s'));
(如何添加到DateInterval對象是在這裏解釋:How we can add two date intervals in PHP)
至於我可以說,Sammaye的答案對我沒有幫助。
我需要開始時間,我想添加UNIX時間戳的開始。這樣,strtotime
返回第一次需要添加的秒數。
$time1 = "15:20:00";
$time2 = "1970-01-01 00:30:00";
$time = strtotime($time1) + (strtotime($time2) + 3600);
echo $time . "<br />";
echo date("H:i:s", $time);
一定要諮詢神祕文檔http://us1.php.net/strtotime你可以輸入額外的東西進入你的功能:)
$today = time();
$tommorrow = strtotime("+1 days", $today);
$day_after_tomorrow = strtotime("+1 days", $tomorrow);
如果你希望答案是15:50:00
,並要使用strtotime
和date
功能,您需要在將它們轉換爲unix時間戳時減去秒數$time1
和$time2
的份額:
$time1 = '15:20:00';
$time2 = '00:30:00';
$time = strtotime($time1) + strtotime($time2) - strtotime('00:00:00');
$time = date('H:i:s', $time);
這非常簡單,但如果您可以提供有關減去0值時間的進一步解釋,則它會更相關。 – rhavendc 2017-09-19 03:43:47
以下回答不會返回正確的值。它總結了整數,但沒有返回正確的時間。
$ o = strtotime($ time1)+ strtotime($ time2);
我創建了一個函數來計算時間如下。
public function addTwoTimes($time1 = "00:00:00", $time2 = "00:00:00"){
$time2_arr = [];
$time1 = $time1;
$time2_arr = explode(":", $time2);
//Hour
if(isset($time2_arr[0]) && $time2_arr[0] != ""){
$time1 = $time1." +".$time2_arr[0]." hours";
$time1 = date("H:i:s", strtotime($time1));
}
//Minutes
if(isset($time2_arr[1]) && $time2_arr[1] != ""){
$time1 = $time1." +".$time2_arr[1]." minutes";
$time1 = date("H:i:s", strtotime($time1));
}
//Seconds
if(isset($time2_arr[2]) && $time2_arr[2] != ""){
$time1 = $time1." +".$time2_arr[2]." seconds";
$time1 = date("H:i:s", strtotime($time1));
}
return date("H:i:s", strtotime($time1));
}
你是怎麼試圖做到這一點的? – Fluffeh 2012-07-30 11:45:25
你有什麼樣的結果應該是什麼樣子的例子? – Pete 2012-07-30 11:46:46
DateTime和DateInterval類。 http://www.php.net/manual/en/book.datetime.php – dnagirl 2012-07-30 11:47:05