在我的表中,我有一个变量$duration
,它存储在几分钟内。
我也有时间变量。设为$time1
。
$time1=date('H:i:s',$time);
$duration=1000; //minutes
$time2= secondsToTime($duration*60);
我使用下面给出的函数将$duration
转换为时间格式。
function secondsToTime($seconds) {
$dtF = new DateTime("@0");
$dtT = new DateTime("@$seconds");
return $dtF->diff($dtT)->format('%h:%i:%s');
}
$time2
中,我有类似存储11:12:13
$time1
我有类似的东西存储01:10:19
我想执行$total=$time1+$time2;
所以,我将$time2
转换为时间格式。
$timeform= new DateTime($time2);
$newtime2= $timeform->format('H:i:s');
现在,我添加$total=$time1+$newtime2;
但echo date('H:i:s',$total);
给了我以下错误:
注意:类
DateTime
的对象无法转换为int
答案 0 :(得分:1)
date()
的第二个参数应该是时间戳(即整数,即秒),而不是格式化的日期字符串。
据我所知,只有比较运算符处理日期时间对象($date1 > $date2
),而不是数学运算符($date1 + $date2
)。
另请参阅http://nl3.php.net/manual/en/datetime.add.php和http://nl3.php.net/manual/en/datetime.modify.php
date()
答案 1 :(得分:0)
date()
的第二个参数应该是Unix时间戳作为整数,而不是DateTime
对象。 (见php.net)
您需要将DateTime
对象转换为Unix时间戳。
echo date('H:i:s',$total->getTimestamp());