0

为什么月份参数中的前导零输出错误?

echo date("Y-m-d", mktime(0, 0, 0, 09, 23, 2013));//output 2012-12-23
echo date("Y-m-d", mktime(0, 0, 0, 9, 23, 2013));//output 2013-09-23
4

2 回答 2

6

来自https://bugs.php.net/bug.php?id=55327

以 0 开头的数字是八进制数。08 是无效值。见 http://php.net/integer

如果您在一个数字前加上前导0,它会将数字标记为八进制。八进制数字系统使用数字 0 到 7。因此,0809不存在且无效。

第二个说法是正确的,这就是正确的方法:

echo date("Y-m-d", mktime(0, 0, 0, 9, 23, 2013));
于 2013-10-03T13:23:04.993 回答
1

我们可以将此参数设置为字符串,它会起作用。

尝试这个:

echo date("Y-m-d", mktime(0, 0, 0, '09', 23, 2013));//output 2012-12-23
于 2013-10-03T13:24:18.637 回答