Дистилляция этого проекта до самых простых терминов;
- Пользователи нажимают кнопку, запись производится с отметкой времени NOW ().
- NOW (), конечно, равно времени на сервере создания записи.
- Мне нужно показать им статистику, основанную на их часовом поясе, а не на моем.
Каков наилучший способ обработки смещения часового пояса в MySql? Существует ли определенный формат поля, предназначенный для работы со смещением?
Мне нужно будет руководствоваться словами:
SELECT DATE_FORMAT(b_stamp, '%W') AS week_day, count(*) AS b_total, b_stamp
FROM table
WHERE
(b_stamp >= DATE_SUB(NOW(), INTERVAL 7 DAY))
AND
(user_id = '$user_id') GROUP BY week_day ORDER BY b_stamp DESC
Я бы предпочел не спрашивать пользователя, в каком часовом поясе он находится, я предполагаю, что JS - единственный способ извлечь эти данные из браузера. Возможно, если они находятся на мобильном устройстве, и это не веб-приложение, я мог бы получить его там, но это может быть не то направление, в котором это происходит.
Я считаю, что наилучшим способом может быть определение их смещения и установка переменной в значение "server_time" +/- их_смещение. Это создает впечатление, что сервер находится в другом месте. Я считаю, что это было бы лучше, так как не было бы никакой дополнительной логики +/-, которую мне нужно было бы добавить в код, запятнать и сделать его уродливым.
С другой стороны, это помещает данные в базу данных с отметками времени, которые находятся по всей доске.
Предложения