如果现在是太平洋时区的夏令时,我需要将时间偏移一个小时。无论用户的本地时区如何,我如何确定太平洋时区的当前夏令时状态?
这是我目前所拥有的。第 4 行中的“dst”只是一个函数的占位符,该函数会告诉我该区域是否启用了夏令时。
function checkTime() {
var d = new Date();
var hour = d.getUTCHours();
var offset = dst ? 7 : 8; // is pacific time currently in daylight savings?
// is it currently 6 AM, 2 PM, or 10 PM?
if (hour === ((6 + offset) % 24) || hour === ((14 + offset) % 24) || hour === ((22 + offset) % 24)) {
// do stuff
}
}
checkTime();
最佳答案
您能够确定的唯一真实方法是您可以询问的服务器上是否有可用的 DST 信息(包括任何更新)。用户的 PC 甚至不需要安装时区信息。
然后您需要一个“动态”脚本来获取 DST 状态。
可能的方法: 引用生成 javascript 的 PHP/ASPX/JSP/CFM/ASP 页面来设置一个变量,该变量指示 DST 是否处于事件状态,或当前的分钟数偏移量。
直接在您的(希望是动态的)页面中编写脚本。
使用 AJAX/REST/JSON 访问某处的日期/时间服务,该服务可以告诉您某个时区/位置的 DST 状态或与 UTC 的分钟数偏移量。
分钟比小时更可取,因为世界各地的 DST 偏移实际上以分钟为单位,而不是小时。
关于javascript - 使用 JavaScript 在一个特定时区中的 DST 偏移时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3191288/