如何在Javascript中转换时区时考虑夏令时?

时间:2011-03-18 21:56:20

标签: javascript date dst

目前我有这段代码:

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),

但是,如果夏令时无效,则databaseTimeZoneMS应为-300 * 60000.如何检查是否为夏令时?这甚至是解决这个问题的正确方法吗?它似乎相当混乱和不雅。

1 个答案:

答案 0 :(得分:2)

您可能(当然)确保您的服务器端代码以某种方式将实际当前时区偏移量存入每个页面。有了这个,您将能够找出客户端和数据库服务器之间的区别。

然而,这些事情总是很脆弱,所以如果你确保所有的时间通信都以UTC的形式进行,事情可能会更好。