Sha*_*non 7 javascript timezone dst
如果它目前在太平洋时区的DST,我需要将时间抵消一个小时.无论用户的当地时区如何,我如何确定太平洋时区的当前夏令时状态?
这是我到目前为止所拥有的.第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();
Run Code Online (Sandbox Code Playgroud)
您能够确定的唯一真正方法是您可以询问的服务器上是否有 DST 信息(包括任何更新)。用户的 PC 甚至不需要安装时区信息。
然后您需要一个“动态”脚本来获取 DST 状态。
可能的方法: 引用生成 JavaScript 的 PHP/ASPX/JSP/CFM/ASP 页面来设置一个变量,该变量指示 DST 是否处于活动状态,或者当前的分钟偏移量。
直接在您的(希望是动态的)页面中编写脚本。
使用 AJAX/REST/JSON 访问某处的日期/时间服务,该服务可以告诉您时区/位置的 DST 状态或与 UTC 的分钟数偏移。
分钟比小时更可取,因为世界各地的 DST 偏移实际上以分钟为单位,而不是小时。
| 归档时间: |
|
| 查看次数: |
3223 次 |
| 最近记录: |