在我的PHP应用程序中,我想计算两个时间变量的总和。我正在寻找类似这样的例子。
$time1 = 15:20:00;
$time2 = 00:30:00;
$time = $time1+$time2;
答案 0 :(得分:4)
如果您期望的答案是15:50:00
,并且您想要使用strtotime
和date
函数,则需要减去秒$time1
和$time2
份额当你将它们转换为unix时间戳时:
$time1 = '15:20:00';
$time2 = '00:30:00';
$time = strtotime($time1) + strtotime($time2) - strtotime('00:00:00');
$time = date('H:i:s', $time);
答案 1 :(得分:4)
以下答案未返回正确的值。它是求和整数但没有返回正确的时间。
$ 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));
}
答案 2 :(得分:3)
最好的方法是使用strtotime将它们转换为时间戳,然后再一起添加:
$o = strtotime($time1)+strtotime($time2);
如果我没记错,strtotime
确实支持这种格式。
否则你需要自己过滤掉它。
答案 3 :(得分:2)
您可以使用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)
答案 4 :(得分:0)
据我所知,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);
答案 5 :(得分:0)
请务必参考神秘博士http://us1.php.net/strtotime,了解您可以输入功能的其他内容:)
$today = time();
$tommorrow = strtotime("+1 days", $today);
$day_after_tomorrow = strtotime("+1 days", $tomorrow);
答案 6 :(得分:-1)
<强>代码:强>
$time1 = '15:20:00';
$time2 = '00:30:00';
$time = strtotime($time1)+strtotime($time2);
$sumtime = date("H:i:s",$time);