@AnotherUniverse

Какое значение задать свойству $dateFormat Eloquent для правильной работы со строкой даты и времени, полученной из PostgreSQL?

Доброго времени суток.

В проекте используется Laravel и PostgreSQL12.
Я получаю с базы строку даты и времени в формате "2020-02-18 19:00:00.761514+02".
В моделе Eloquent определил формат в свойстве $dateFormat следующим образом:
protected $dateFormat = 'Y-m-d H:i:s.uO';

Всё было прекрасно до тех пор, пока я не сохранил в базу значение следующего вида:
"2020-02-18 19:00:00.000000+0200".
Запись сохранилась, но теперь Postgres мне возвращает строку "2020-02-18 19:00:00+02".
Как я понимаю, если фрактальная часть у нас нулевая, то Postgres игнорирует её при выводе.
Как результат - такая строка валит приложение, т.к. не соответствует формату.

Первое что приходит в голову - это изменить типы столбцов даты и времени в БД на timestamptz(0), а формат в моделях на "Y-m-d H:i:sO" и вообще не заморачиваться с фрактальной частью. Но не особо хочется это делать по различным причинам.
Второе - обрабатывать даты вручную с дополнительными проверками. Вариант, как по мне, ещё хуже.

Есть ли возможность каким-либо образом изменить строку формата, чтобы наличие или отсутствие фрактальной части не ломало приложение?
Мануал курил, но очевидного способа это сделать не обнаружил. Возможно плохо курил))

Спасибо.
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы