gpt4 book ai didi

php - 无法理解 PHP 中 DateTime 类的行为

转载 作者:可可西里 更新时间:2023-11-01 13:52:24 24 4
gpt4 key购买 nike

我在 Kubuntu 14.04 和 PHP 5.6.23 中使用 LAMP。

使用 DateTime 时在以下情况下:

1.

print_r((new DateTime('2016-02-31'))->format('M/d/Y')); 
// Mar/02/2016 (no errors, why?)

2.

print_r((new DateTime('2016-02-32'))->format('M/d/Y')); 
// Error - DateTime::__construct(): Failed to parse time string-
// (2016-02-32) at position 9 (2): Unexpected character

为什么第一种情况没有给我错误,因为没有二月的第 31 天?

请求支持答案的引用

最佳答案

来自php docs:

It is possible to over- and underflow the dd and DD format. Day 0 means the last day of previous month, whereas overflows count into the next month. This makes "2008-08-00" equivalent to "2008-07-31" and "2008-06-31" equivalent to "2008-07-01" (June only has 30 days).

Note that as of PHP 5.1.0 the day range is restricted to 0-31 as indicated by the regular expression above. Thus "2008-06-32" is not a valid date string, for instance.

这很清楚。

在用户注释 Mirek 中还建议使用 mktime 如果你需要:

unlimited over/underflow for date calculations (for example 2015-01-40 to 2015-02-09)

关于php - 无法理解 PHP 中 DateTime 类的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41060914/

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