我想设置一个计时器并计算完成任务所需的时间。
所以我设置了以下PHP代码来测试:
$firstDate = date('Y-m-d h:m:s');
sleep(80);
$secondDate = date('Y-m-d h:m:s');
$diffDates = (strtotime($secondDate) - strtotime($firstDate));
echo "Difference in dates is:" . $diffDates . "\n";
当我运行它虽然它给我以下输出:
Difference in dates is:-40
我想知道的是,为什么它会给我-40,如何设置它以便我可以简单地计算结束日期 - 以分钟为单位的开始日期。
非常感谢您的帮助。
答案 0 :(得分:0)
问题是您的时间格式字符串错误:
$firstDate = date('Y-m-d h:m:s');
第二个m
,对于'分钟'来说应该是i
,实际上又是'月',所以它是07
这将解决它:
date('Y-m-d h:i:s')
还值得注意的是,如果您使用此格式,则应在末尾添加a
以指定am
或pm
,或使用H
代替{{ 1}} 24小时格式。
这可能会导致问题。例如,我现在正是下午3:17,所以当我这样做时:
h
我的输出是:
echo time();
echo "<br>";
echo strtotime(date('Y-m-d h:i:s'));
但使用1501010231
1500967031
或date('Y-m-d h:i:s a')
会使两个值的预期结果相同。
答案 1 :(得分:0)
问题是你给出了错误的日期格式。哪个应该是h:i:s
而不是h:m:s
所以你的日期将是:date('Y-m-d h:i:s')
$firstDate = date('Y-m-d h:i:s');
sleep(80);
$secondDate = date('Y-m-d h:i:s');
$diffDates = (strtotime($secondDate) - strtotime($firstDate));
echo "Difference in dates is:" . $diffDates . "\n";
然后输出为:Difference in dates is:80
答案 2 :(得分:0)
$ firstDate = new \ DateTime();
睡眠(80);
$ secondDate = new \ DateTime();
$ interval = $ firstDate-&gt; diff($ secondDate);
回声“日期的差异是:”。 $ interval-&gt; s。 “\ n” 个;
结果:日期差异为:80