繁体   English   中英

使用偏移量计算JavaScript日期时间

[英]Calculating JavaScript date time with offset

我正在经历一些GMT时区偏移钙化的意外结果。

我正在使用ExtJS日期类来帮助计算消息从GMT 0服务器到达用户本地机器(当前GMT +8)的时间。

我想如果我计算了偏移量,然后在几秒钟内将其添加到时间戳,那么我可以使用以下计算给我一个字符串格式化我喜欢。

var d = new Date((stamp + offset) * 1000);

stamp是以秒为单位的日期/时间,也就是偏移量。

这将返回我所在位置的当前日期和时间,但加上8小时。 如果我不添加偏移量,那么时间是正确的。

方法new Date()会自动给我当地时间的日期/时间吗?

只需插入一个包含千分之一秒的unix时间戳。 unix时间戳应为UTC 0,javascript将查找客户端计算机的本地时区并计算它。

正如您在链接后面所看到的,有一些UTC方法可以为您提供没有本地时间偏移的时间。 也许这可能是你搜索的内容(如果你真的想自己设置时区)。

编辑:

new Date().getTimezoneOffset()将显示本地时区和utc之间的区别,但您应该考虑使用utc方法。

只需添加它,以防其他人看到后者。 可能是错的,但可以满足我的需要。

我在几秒钟内存储了用户的偏移量。

以秒为单位的偏移量会更改(offset * 1000) ,以确保如果偏移量不是以秒为单位,则偏移量将转换为毫秒数。

function offsetDate(offset){
            var d = new Date(new Date().getTime() + (offset * 1000));
            var hrs = d.getUTCHours();
            var mins = d.getUTCMinutes();
            var secs = d.getUTCSeconds();
            //simple output
            document.write(hrs + ":" + mins + ":" + secs);

从它的外观来看, stamp是您当地的时间,包括时区偏移。 JavaScript不了解服务器的时区,它(主要)是客户端语言。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM