Формат даты Symfony REST API

#php #rest #symfony #date

#php #rest #symfony #Дата

Вопрос:

Как бы вы предложили передать из бэкэнда (формат даты и времени) во внешний интерфейс Js (и наоборот) «дату» с использованием Symfony?

На данный момент я создал (кроме поля ORM «дата») средство получения «formattedDate», которое возвращает дату, отформатированную в соответствии с требованиями клиента (это может быть временная метка или простая дата, отформатированная с использованием языкового стандарта, например, гггг-мм-дд). Затем клиент считывает «formattedDate» и отправляет его обратно измененным, поэтому при каждом действии «update» я анализирую json, и если я получил поле «formattedDate», я использую его для записи поля «дата».

Я не уверен, что это хороший подход, поскольку он требует от меня (на мой взгляд) слишком много настроек, чтобы заставить его работать, и я почти уверен, что есть что-то проще, чего мне не хватает.

Спасибо

Комментарии:

1. Самым простым и гибким способом было бы использовать ISO 8601, поскольку оба (PHP и JS) точно понимают, что он говорит. date('now', 'c'); . Symfony (и Doctrine) также легко поймут формат даты!

Ответ №1:

Я думаю, что есть много подходов, которые могут сработать, и тот, который вы уже используете, подходит.

Я работаю с датами в проектах Symfony с помощью класса DateTimeImmutable ; Поэтому я согласен с интерфейсом в том, в каком формате им нужны даты, и каждый раз, когда я отправляю дату во внешний интерфейс, я буду форматировать ее соответствующим образом, и каждый раз, когда я получаю дату из внешнего интерфейса, я буду преобразовывать ее в DateTimeImmutable.

Вы можете найти больше о DateTimeImmutable в официальных документах

Я надеюсь, что это даст вам лучшую перспективу.