- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个工作脚本,我将其推送到我们组织中每个人的 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/
我是一名优秀的程序员,十分优秀!