我无法弄清楚为什么会发生这种情况,但是当我一次添加-10分钟时...它不起作用。
这是一个简化版本:
$time = '08:30';
$time_minus_10m = strtotime($time) + strtotime("-10 min");
echo '<b>'.$time.'</b> -10 mins is <b>'.date('H:i', $time_minus_10m).'</b>';
输出:
08:30 -10分钟 01:05
但应输出:
08:30 -10分钟 08:20
答案 0 :(得分:2)
你试过合并吗?
$time_minus_10m = strtotime("$time -10 minutes");
孤立地,strtotime('-10 minutes')
只会给你当前时间前10分钟的时间;将其添加到任何其他时间并不再有意义:)
如果您已经存在要锚定的现有时间戳,则可以将其作为要使用的第二个参数而不是当前时间传递。
答案 1 :(得分:1)
因为您在strtotime()
来电中没有提供时间,所以从当前时间减去10分钟。尝试:
$time_minus_10m = strtotime("-10 min", strtotime($time));
答案 2 :(得分:1)
$time = new DateTime('08:30');
$cloned_time = clone $time;
$time_minus_10m = $cloned_time->modify('-10 min');
echo '<b>'.$time->format('H:i').'</b> -10 mins is <b>'.$time_minus_10m->format('H:i').'</b>';