2009-04-22 6 views
0

Переопределение этого проекта до простейшего из условий;Предложения по работе с временными смещениями в mysql

  1. Пользователи нажимают кнопку, запись производится с отметкой времени NOW().
  2. СЕЙЧАС(), конечно, равно времени на сервере создания записи.
  3. Мне нужно показать их статистику, основанную на их часовом поясе, а не на моем.

Каков наилучший метод для разграничения смещений часового пояса в 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» +/- their_offset. Это заставляет его выглядеть так, как будто сервер находится в другом месте. Я считаю, что это было бы лучше, так как не было никакой дополнительной логики +/-, которую мне нужно добавить в код, запутывая ее и делая ее уродливой.

С другой стороны, это помещает данные в базу данных с отметками времени, которые находятся по всей доске.

Предложения?

ответ

0

Помимо использования JS, вы можете получить часовой пояс своего IP-адреса (используя что-то вроде ip2location), а затем использовать функцию CONVERT_TZ() MySQL.

1

Вы можете использовать JavaScript, чтобы получить временную зону от клиента следующим образом:

вар TimeZone = (. Новый Date() gettimezoneOffset()/60) * (- 1);

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

 Смежные вопросы

  • Нет связанных вопросов^_^