DateTime::createFromFormat
и date_parse_from_format
были добавлены в PHP 5.3, потому что был высокий спрос на эту функцию, особенно со стороны разработчиков, которые пишут для пользователей, которые не используют Форматы даты и времени в США.
Перед этим вам нужно было разработать специальную функцию для анализа используемого вами формата; с PHP <5.3 обычно делается: </p>
- Решите, какой формат будет принят приложением
- Вывести на экран какое-нибудь сообщение, наподобие «Ваш ввод должен быть в формате JJ / MM / AAAA» (французский для ДД / ММ / ГГГГ)
- Проверьте, что вход в порядке, относительно этого формата
- И проанализируйте его, чтобы преобразовать в дату / время, понятное PHP.
Это означает, что приложения и разработчики, как правило, не допускают такого количества форматов, поскольку каждый формат подразумевает одну отдельную дополнительную проверку / функцию анализа.
Если вам действительно нужна такая функция, которая учитывает любой возможный формат, я боюсь, что вам придется написать ее самостоятельно: - (
Может быть, взглянуть на источники date_parse_from_format
может помочь, если вы понимаете код C? Он должен выглядеть примерно так: ext/date/php_date.c
- но не все так просто: он вызывает функцию timelib_parse_from_format
, которая определена в ext/data/lib/parse_date.c
, и выглядит не очень дружелюбно ^^