Почему начальный ноль в параметре месяца делает неправильный вывод?
echo date("Ymd", mktime(0, 0, 0, 09, 23, 2013));//output 2012-12-23 echo date("Ymd", 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
, он отмечает число как Octal . Система восьмеричных чисел использует цифры от 0 до 7. Таким образом, 08
и 09
не существует и недействительны.
Второе утверждение верно, и это правильный метод:
echo date("Ymd", mktime(0, 0, 0, 9, 23, 2013));
Мы можем сделать этот параметр как строку, и он будет работать.
Попробуй это:
echo date("Ymd", mktime(0, 0, 0, '09', 23, 2013));//output 2012-12-23