Здравствуйте. Помогите пожалуйста разобраться как лучше реализовать отображение даты и времени с учетом временной зоны пользователя, а то изучая этот вопрос запутался. Раньше использовал временную метку Unix и не заморачивался с зонами, теперь решил разобраться.
Итак, вот вопросы или утверждения, к которым я пришел в процессе изучения этого вопроса :
1. Дату и время в бд надо хранить в UTC. Вопрос - в timestamp with timezone(далее timstampTZ) или timestap without timezone (далее timestamp)?
2. Почему UTC, а не время сервера? В случае выбора timestamp понятно - удобнее делать смещение по сохраненным настройкам временной зоаны пользователя. А вот в случае timestampTZ нет, ведь там уже задано смещение.
3. Сервер (ОС, PHP, БД) настраивать на UTC время, или достаточно просто в нем его сохранять?
4. Если timestamp, то какой смысл и практическое применение типа данных timestampTZ ?
5. Пробовал сохранить в поле бд timestampTZ время с учетом смещения используя
new DateTime('now', new DateTimeZone('Europe/Moscow'))
- в базу попадает все равно время UTC. Почему? (бд настроена на UTC)
Буду благодарен за ответы на вопросы и подсказки лучших практик работы с временными зонами. Спасибо!