gpt4 book ai didi

美国的javascript时区脚本如何进行夏令时

转载 作者:行者123 更新时间:2023-11-28 02:40:27 29 4
gpt4 key购买 nike

我有一个工作脚本,我将其推送到我们组织中每个人的 IE 收藏夹列表中(见下文)。根据办公室在公司中的地理位置,它们会被路由到 4 个网址中的 1 个。

<html>
<body>

<script language="JavaScript">
var today = new Date();
var offset = (today.getTimezoneOffset() / 60) + 1;
if (offset == 5) document.location.href = "url=EASTERNtime.com";
else if (offset == 6) document.location.href = "url=CENTRALtime.com";
else if (offset == 7) document.location.href = "url=MOUNTAINtime.com";
else if (offset == 8) document.location.href = "url=pacifictime.com";
else document.location.href = "url=pickyourowntimezone.com";

</script>
</body>
</html>

我想知道夏令时将如何影响我的脚本,因为我知道我们在亚利桑那州设有办事处,但他们不认识它。我需要对脚本进行哪些更改才能确保人员仍然正确路由?我在想类似的事情......

如果日期在 3 月 11 日到 11 月 4 日之间,则运行此...如果不是...运行此...

这有道理吗?或者我是否需要担心这个,当他们的时钟改变或不改变时,一切都会自行解决?

最佳答案

我的日期扩展有识别 DST 的方法:

http://depressedpress.com/javascript-extensions/dp_dateextensions/

如果日期符合本地 DST,dateinstance.isDST() 方法将返回“true”,否则返回“false”。

但总体想法既非常简单又令人费解且可怕(因为这实际上只是一个愚蠢的猜测)。基本上,无论使用 DST(或类似方案),还是定义开始和结束日期,1 月 1 日之间的时区偏移量都不会与 7 月 1 日相同。添加一些代码以纪念南半球让每个人都倒退和错误的事实(我开玩笑!)一个确定任何特定日期(以及我的扩展中使用的日期)的简单函数是:

        // isDST 
// Returns "true" if the date appears to fall within the local area's Daylight Saving Time (or similar scheme), returns false if the date does not (or it appears that the region doesn't observe DST).
Date.prototype.isDST = function() {

// Generate test dates
var Jan1 = new Date(this.getFullYear(), 0);
var Jul1 = new Date(this.getFullYear(), 6);

// DST in the Northern hemisphere is "fall back"
if ( Jan1.getTimezoneOffset() > Jul1.getTimezoneOffset() && this.getTimezoneOffset() != Jan1.getTimezoneOffset() ){
return true;
};
// DST in Southern hemisphere is "leap ahead"
if ( Jan1.getTimezoneOffset() < Jul1.getTimezoneOffset() && this.getTimezoneOffset() != Jul1.getTimezoneOffset()){
return true;
};
// We're not in DST
return false;
};

使用 TZ 数据库的解决方案更加强大,因为它们可以确定正在使用哪个时区 - 但在确定时间是否处于 DST 时通常同样无能(因为开始和结束时间的规则是经常在变化)。

根据您的需要,我认为上面的代码应该可以解决问题。

关于美国的javascript时区脚本如何进行夏令时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12734048/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com