Существует то, что я назвал бы ошибкой в date_parse, когда нет дня. $d = date_parse("Feb 2010")
даст $d["day"] == 1
.php date_parse («Feb 2010») дает день == 1
См. Комментарий к этому вопросу на the date_parse manual page.
Любое хорошее обходное решение для этой проблемы? :-)
ОБНОВЛЕНИЕ Дата исходит из опубликованных научных отчетов. К сожалению, это означает, что они могут выглядеть по-разному. Я хочу преобразовать их в более стандартный формат ISO при отображении ссылок. Чтобы помочь читателям, я хочу всегда включать только данные поля (годы, месяц, дату). Таким образом, это должно быть справедливо (и только дайте мне год):
2010
Это должно быть в силе, но только дайте мне 2010-02 так сказать:
Feb 2010
UPDATE 2 Таким образом, далеко я видел две ошибки здесь в date_parse
. Он не может разобрать 2010
. И это дает день, хотя нет дня в Feb 2010
.
Я могу, конечно, написать исправление для этого, но, конечно же, кто-то уже это сделал, или ???
PHP всегда пытается вернуть действительную дату, я полагаю, что именно по этой причине он возвращает 1 для этого индекса, а не для флага. IMO false действительно не имеет никакого смысла, и единственная разумная ценность, которую нужно вернуть, равна 1. – vascowhite
Только год или год плюс месяц являются действительными датами. 2010 или 2010-02 являются действительными датами ISO, но я вижу, что date_parse говорит, что 2010 год является недействительным. Еще одна ошибка. :-( – Leo
Обходной путь заключается в том, чтобы написать собственный синтаксический анализатор даты, который делает то, что вы хотите. – Barmar