Why the leading zero in the month parameter making wrong output?
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 がある数値は 8 進数です。08 は無効な値です。http://php.net/integerを参照
数値の前に を付けると、その数値はOctal0
としてマークされます。8 進数では 0 から 7 までの数字を使用します。そのため、andは存在せず、無効です。08
09
2 番目のステートメントは正しく、それが正しい方法です。
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