PHP日期-奇怪的日期计算

时间:2018-09-01 02:59:49

标签: php date strtotime

我正在尝试将时间四舍五入为一整分钟(这是更大的舍入机制的一部分)。在单元测试中,我发现一些奇怪的东西,这种和平的代码:

echo date('Y-m-d H:i:00', strtotime('2018-09-31 19:39:45'));

导致:

2018-10-01 19:39:00

我在做什么错了?

注意:我 WAS 2018-10-01

上运行

http://sandbox.onlinephpfunctions.com/code/1cb0dd98e9d540616d02ce2d5c00684800af8597

1 个答案:

答案 0 :(得分:3)

strtotime()不验证日期。

如果愿意

echo date('Y-m-d H:i:00', strtotime('2018-02-30 19:39:45'));

输出

2018-03-02 19:39:00

因此,这里的问题是您使用的是“无效”日期,而PHP汇总了几秒钟。 因此,september 31表示9月30 + 24小时(以秒为单位)。当您运行date()时,将获得以秒为单位的日期,并向您显示有效日期(十月初)。