Как принять во внимание летнее время при преобразовании часовых поясов в Javascript? - PullRequest
0 голосов
/ 19 марта 2011

В настоящее время у меня есть этот код:

var databaseTimeZoneMS = -240 * 60000;

var time = ('' + date_str).replace(/-/g,"/").replace(/[TZ]/g," "),
    dt = new Date,
    seconds = ((dt - new Date(time) + ((dt.getTimezoneOffset() * 60000) + databaseTimeZoneMS)) / 1000),

Однако, если летнее время не действует, база данных TimeZoneMS должна быть -300 * 60000. Как я могу проверить, является ли летнее время? Это даже правильный способ решения этой проблемы? Это выглядит довольно грязно и не элегантно.

1 Ответ

2 голосов
/ 19 марта 2011

Вы, вероятно, (ну, безусловно) должны убедиться, что ваш серверный код каким-то образом вносит свое фактическое текущее смещение часового пояса на каждую страницу. Вооружившись этим, вы сможете выяснить разницу между клиентом и сервером базы данных.

Такие вещи всегда хрупки, поэтому, возможно, все будет лучше, если вы будете следить за тем, чтобы все время осуществлялось в терминах UTC.

...