【发布时间】:2018-03-28 06:39:29
【问题描述】:
我的客户端和服务器位于 UTC(+1245) 查塔姆群岛时区
在这个时区,从 2018 年 9 月 30 日 02:45 到 2018 年 9 月 30 日 03:45,时钟将提前一小时。
我希望如果有人在这些时间之间设置时间,它应该通知用户。我已使用以下代码找到它,但它没有显示。
https://jsfiddle.net/tt8dmm4y/5/
Date.prototype.stdTimezoneOffset = function() {
var jan = new Date(2018, 0, 1);
var jul = new Date(2018, 6, 1);
return Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset());
}
Date.prototype.isDstObserved = function() {
return this.getTimezoneOffset() < this.stdTimezoneOffset();
}
var checkdate = new Date(2018, 09, 30, 02, 55, 00);
if (checkdate.isDstObserved()) {
alert("Daylight saving time!");
}
有什么帮助吗?
【问题讨论】:
-
如何获取时区?
-
如果像你描述的那样发生夏令时,那么当天02:55的时间就不存在了,那么问夏令时是否保持那个时间是什么意思?
-
@ArndtJonasson 如果用户给出了这些值,那么如何识别它在空 DST 段中?
-
我想如果你得到一个返回的有效日期,你可以检查它的小时和分钟字段是否等于你输入的内容,但我不确定验证日期时通常的做法是什么字段。另一端有一个更大的问题,在一小时内有两种可能的解释。
标签: javascript timezone dst