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



我在计算GMT时区偏移量时遇到了一些意想不到的结果。

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

我认为如果我计算偏移量,然后将其添加到以秒为单位的时间戳中,那么我可以使用以下计算给我一个字符串来格式化。

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

戳是以秒为单位的日期/时间,偏移量也是如此。

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

方法new Date()是否自动给出本地时间的日期/时间?

只是添加这个,以防它帮助别人以后看。可能是错误的,但为我需要的工作。

我将用户的偏移量以秒为单位存储。

以秒为单位的偏移量更改(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);

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

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

编辑:

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

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

相关内容

  • 没有找到相关文章

最新更新