2015-11-19 3 views
-1

Мне просто интересно, как я могу заставить функцию даты выдать ошибку за неверные даты. Вот что я пробовал, а результаты в комментариях. смотри ниже:Почему функция даты не выдает мне ошибку?

echo date("n",strtotime("Nov"))."\n"; //outputs 11 as expected 
echo date("n",strtotime("nov"))."\n"; //outputs 11 as expected 
echo date("n",strtotime("dec"))."\n"; //outputs 12 as expected 
echo date("n",strtotime("nova"))."\n"; //outputs 12 but instead I expected an error 

Есть простая функция, я могу использовать, чтобы убедиться, дата текстуальное действует или я должен скатываются свой собственный массив, чтобы проверить его?

+1

RTFM: http://php.net/manual/en/function.date.php 'Возвращает отформатированную строку даты. Если для метки времени используется нечисловое значение, возвращается FALSE и испускается ошибка уровня E_WARNING. То же самое для strtotime. Он возвращает логическое значение false при ошибке, которое date() будет видеть как целое число '0'. Если у вас есть 'date ('r', ...)' вы увидите, что у вас есть декабрь 1969 года, так как почти наверняка вы находитесь в часовом поясе GMT ​​+ x. –

+0

"// выводит 12, но вместо этого я ожидал ошибку" - он должен печатать '1' за январь (1, 1970); то же, что и для 'date (" n ", false)" и 'date (" n ", 0)' – VolkerK

+0

@VolkerK. Это происходит, см. https://eval.in/472105 – syck

ответ

0

Функция возвращает истина/ложь в соответствии с PHP manual:

Смежные вопросы