PHP:
Анализ даты из строки
Как:
PHP делает разбор дат из строк довольно простым с помощью класса DateTime
. Вот быстрый пример:
<?php
$dateString = '2023-04-12 14:00:00';
$dateTime = new DateTime($dateString);
echo $dateTime->format('Y-m-d H:i:s'); // Выводит: 2023-04-12 14:00:00
?>
Просто, правда? Теперь, хотите изменить формат или часовой пояс? Вот как:
<?php
$dateString = '12 апреля 2023 14:00:00';
$dateTime = DateTime::createFromFormat('F j, Y H:i:s', $dateString);
$dateTime->setTimezone(new DateTimeZone('Europe/London'));
echo $dateTime->format('Y-m-d H:i'); // Выводит: 2023-04-12 14:00
?>
Играйте с форматами и часовыми поясами, чтобы увидеть, насколько это может быть мощным.
Подробнее
Исторически разработчикам PHP приходилось вручную разбирать строковые даты или использовать strtotime()
, что эффективно, но менее мощно, чем DateTime
. Введенный в PHP 5.2.0, DateTime
предоставляет объектно-ориентированные манипуляции с датой/временем.
Почему изменения? Потому что DateTime
:
- Обрабатывает исключения.
- Работает с разными календарями.
- Ориентирован на часовые пояса.
- Имеет больше вариантов форматирования и разбора.
Альтернативы включают IntlDateFormatter
для интернационализации или библиотеку Carbon
для современного синтаксического удобства.
При разборе обратите внимание на подводные камни:
- Всегда проверяйте ввод. Неверные форматы вызывают неправильные даты или ошибки.
- Часовые пояса имеют значение. Храните в UTC и отображайте локально.
- Секунды перехода и летнее время могут влиять на расчеты.