Как хранить выбранный юзером его часовой пояс?

1) Как лучше хранить в БД поправку на время для этого пользователя?
Смысл вопроса в том, что если человек выбирает себе в настройках МСК+7 то надо не просто отображать его время, а правильно отобразить что его магазин сейчас уже не работает, или зашедшим посетителям не давать оформить доставку на "сегодня" потому что сегодня уже закончилось и у него на сайте уже надо "завтрашнюю" дату показывать.

2) Датау заказа в БД хранить в одинаковом виде для всех?
Т.е. если заказ приходит в 21:00 по МСК и у пользователя стоит время МСК в настройках, то в БД записываем дату 25, то же самое заказ в 21:00 по МСК но у пользователя МСК+7 в настройках, то ему в БД пишем число заказа 26е?

3) Стоит ли использовать TIMESTAMP в этом случае?
Пользователь из Владика и его магаз надо закрыть на 7 часов раньше чем в МСК. Но timestamp записывает в базу NOW() да ещё и с учётом установленного часового пояса MySQL, а он один, а не разный для всех юзеров. Разве что вручную при записи в БД тогда прибавлять timestamp + 7 * 3600 что бы получить истинное время заказа для пользователя из Владика.

Всё вышенаписанное подразумевает что магазином юзера пользуются юзеры из того же региона, что и он сам т.е. на сайт для Владика москвичи не зайдут и не удивятся что там уже завтрашняя дата стоит.
  • Вопрос задан
  • 198 просмотров
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега MySQL
{PHP, MySql, HTML, JS, CSS} developer
Комментировать
kpa6uu
@kpa6uu
Программист Талибана [Пыхерский Алибаба]
Лучше хранить временную зону пользователя в формате а-ля Europe/Moscow (это позволит избежать проблем с переходом на летнее время).

Ещё можно хранить в виде смещения от UTC, но тут возникает ранее обговорённая проблема летнего времени.
Ответ написан
Ваш ответ на вопрос

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

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