Игнорировать часть времени при использовании DateTime :: createFromFormat - PullRequest
0 голосов
/ 13 ноября 2018

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

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

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

1 Ответ

0 голосов
/ 13 ноября 2018

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

"!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.Без него компоненты, не указанные в формате, устанавливаются на компоненты с текущего времени. Символ
  • + указывает синтаксическому анализатору игнорировать завершающие символы в строке даты.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...