导致0个月参数输出错误

时间:2013-10-03 13:21:12

标签: php date mktime

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

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

2 个答案:

答案 0 :(得分:5)

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

  

前导0的数字是八进制。 08是无效值。看到   http://php.net/integer

如果您使用前导0作为前缀,则会将该数字标记为Octal。八进制数字系统使用数字0到7.因此,0809不存在且无效。

第二个陈述是正确的,这是正确的方法:

echo date("Y-m-d", mktime(0, 0, 0, 9, 23, 2013));

答案 1 :(得分:1)

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

试试这个:

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