Почему начальный нуль в параметре месяца дает неправильный вывод?
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
Почему начальный нуль в параметре месяца дает неправильный вывод?
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
09
не является допустимым значением. - person John Conde   schedule 03.10.2013