Анализ даты из строки

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:

  1. Обрабатывает исключения.
  2. Работает с разными календарями.
  3. Ориентирован на часовые пояса.
  4. Имеет больше вариантов форматирования и разбора.

Альтернативы включают IntlDateFormatter для интернационализации или библиотеку Carbon для современного синтаксического удобства.

При разборе обратите внимание на подводные камни:

  • Всегда проверяйте ввод. Неверные форматы вызывают неправильные даты или ошибки.
  • Часовые пояса имеют значение. Храните в UTC и отображайте локально.
  • Секунды перехода и летнее время могут влиять на расчеты.

Смотрите также