gpt4 book ai didi

php - 为什么0000-00-00 00 :00:00 return -0001-11-30 00:00:00?

转载 作者:IT王子 更新时间:2023-10-29 00:06:07 27 4
gpt4 key购买 nike

之前,我已经阅读了这个问题:

How to prevent PHP to convert a DateTime object with 0000-00-00 value to -0001-11-30

但是当我运行这段代码时,我不明白为什么 0000-00-00 00:00:00 会更改为 -0001-11-30 00:00:00:

$date = date_create('0000-00-00 00:00:00');
echo date_format($date, 'Y-m-d H:i:s');

当我用 0001-00-00 00:00:00 尝试时,我得到:

0000-11-30 00:00:00

使用 0001-01-01 00:00:00 我得到:

0001-01-01 00:00:00

和 0000-00-01 00:00:00:

-0001-12-01 00:00:00

为什么它总是比不存在的日期早一年/一天/一个月?有什么具体原因吗?

函数有问题吗date_createdate_format ?

我注意到时间显示正确,这可能是因为时间 00:00:00 存在。

最佳答案

就像@Mark Ba​​ker 说的,0000-00-00 00:00:00 是无效日期,因为没有零月,没有零日....所以它是第 1 个月(1 月)- 1(上一年的 12 月)和第 1 天 - 1(转到上个月的最后一天,即 11 月 30 日)。

如果您在 date_create 中充分了解此行为.它说 DateTime识别任何最多 12 的数字作为 [month],以及任何数字最多 31 作为一个[day];它计算出的结果日期是 [month] 开始后的 [day] 天。这意味着当 datetime 对象创建时的天数多于该月的天数,则日期将超过该月的月底。如果您创建的日期是无效日期,这也适用。 :)

关于php - 为什么0000-00-00 00 :00:00 return -0001-11-30 00:00:00?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29917598/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com