为什么月份参数中的前导零输出错误?
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
来自https://bugs.php.net/bug.php?id=55327:
以 0 开头的数字是八进制数。08 是无效值。见 http://php.net/integer
如果您在一个数字前加上前导0
,它会将数字标记为八进制。八进制数字系统使用数字 0 到 7。因此,08
和09
不存在且无效。
第二个说法是正确的,这就是正确的方法:
echo date("Y-m-d", mktime(0, 0, 0, 9, 23, 2013));
我们可以将此参数设置为字符串,它会起作用。
尝试这个:
echo date("Y-m-d", mktime(0, 0, 0, '09', 23, 2013));//output 2012-12-23