Игнорировать часть времени при использовании DateTime :: createFromFormat

У меня есть даты, поступающие из базы данных в двух форматах:

$tests[] = "2018-01-01";
$tests[] = "2018-01-01 12:34:56.789";

Можно ли преобразовать строки в DateTime, используя DateTime::createFromFormat и игнорировать часть времени? Я хотел бы использовать минимальный код для обработки обоих случаев.

0

Решение

Вы можете использовать следующий формат:

"!Y-m-d+"

Вот так:

echo DateTime::createFromFormat("!Y-m-d+", "2018-01-01")             ->format(DateTime::ATOM); // 2018-01-01T00:00:00+05:00
echo DateTime::createFromFormat("!Y-m-d+", "2018-01-01 12:34:56.789")->format(DateTime::ATOM); // 2018-01-01T00:00:00+05:00
  • ! символ сбрасывает все компоненты даты и времени слева от него до 1970-01-01 00:00:00. Без этого компоненты, не указанные в формате, устанавливаются на компоненты с текущего времени.
  • + символ указывает синтаксическому анализатору игнорировать завершающие символы в строке даты.
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector