ведущий 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

person itsazzad    schedule 03.10.2013    source источник
comment
Поскольку 09 не является допустимым значением.   -  person John Conde    schedule 03.10.2013
comment
Как 09 не может быть допустимым значением?   -  person itsazzad    schedule 03.10.2013


Ответы (2)


Из 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));
person Amal Murali    schedule 03.10.2013

Мы можем сделать этот параметр строкой, и он будет работать.

Попробуй это:

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