将时间值递增 15 分钟


incrementing time value by 15 minutes

我的mor_start中有值 10:00:00,它是 mysql 数据库中的时间类型,我希望它增加 15 分钟。

$tim=$values['mor_start'];
$date = date('H:i:s', strtotime($tim));
echo $date;

上面的代码显示 10:00:00

但是当我尝试通过以下代码增加时间时,出现错误: 注意:遇到格式不正确的数值

$tim=$values['mor_start'];
$date = date('H:i:s', strtotime("+15 minutes",$tim));
echo $date;

正如马克·贝克所说(他应该得到答案),一个正确的解决方案是用这个代替计算:

strtotime("+15 minutes",strtotime($tim)));

多次调用strtotime()有点矫枉过正。带有 DateTime 扩展的代码是一个更快的示例(并且 ofc 更漂亮),如以下演示:

echo date_create('10:00:00')->modify('+15 minute')->format('H:i:s');

在您的本地主机上测试此演示并查看差异。我在1e6循环上的结果是:

add15min_v1() has looped 1000000x times in 23.47sec.
add15min_v2() has looped 1000000x times in  6.81sec.

试试这个

$date = date('H:i:s', strtotime("+15 minutes", strtotime($tim)));

http://php.net/manual/en/function.strtotime.php

$tim=$values['mor_start'];
$date = date("H:i:s", strtotime("+15 minutes",strtotime($tim)));
echo $date;

这应该有效。