Время регистрации в Db по отношению к клиентам TimeZone - PullRequest
0 голосов
/ 19 декабря 2010

У меня есть веб-приложение, которое регистрирует все действия, выполняемые клиентом, с идентификатором пользователя и временем, когда событие было выполнено.На данный момент приложение регистрирует данные о времени сервера БД.мое приложение поддерживает другой часовой пояс, поэтому я хочу записать время клиентского компьютера, который вызывает событие, и сохранить это время в db, а не в часовом поясе сервера Db.

Структура таблицы Столбцы: UserID, EventId, Время (это значение должно быть временем клиентского компьютера, а не значением сервера БД)

Мой вопрос: какя могу записать часовой пояс клиентского компьютера, а не часовой пояс dbserver.

Надеюсь, я был достаточно ясен.Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 20 декабря 2010

В конце базы данных вы хотите использовать TIMESTAMP с TIMEZONE тип данных.

Очевидно, что это делает некоторые запросы более сложными. Например, если вы хотите извлечь записи субботы, вы имеете в виду субботу с точки зрения пользователя, который инициировал вставку, или субботу с точки зрения лица, выполняющего запрос, или субботу с точки зрения базы данных другая «беспристрастная» точка зрения).

1 голос
/ 20 декабря 2010

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

I.Попросите пользователя

В разделе «Настройки пользователя» вы предоставляете пользователю возможность установить предпочитаемый часовой пояс.

II.Предположим,

Используя заголовок HTTP_ACCEPT_LANGUAGE, вы можете определить страну.Очевидно, что если для параметра задано только «en», «fr» или «es», то, скорее всего, вы будете полагать, что если есть предпочтения страны, например «en-US», «en-GB» или «fr-FR»«тогда ваше предположение будет ближе.Вам все еще понадобится поле «User Preferences» для обработки крайних случаев.

III.Используйте Javascript

Javascript имеет функцию getTimezoneOffset () , которая даст вам смещение от GMT для браузера клиента.Ниже приведен пример использования этой функции:

Как узнать местное время в jQuery?

Надеюсь, это поможет.

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