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

使用偏移量计算JavaScript日期时间,javascript,date,datetime,extjs,Javascript,Date,Datetime,Extjs,我在GMT时区偏移计算中遇到了一些意想不到的结果 我使用ExtJS date类来帮助计算消息在GMT 0时从服务器到达用户的本地机器(当前为GMT+8)的时间 我想如果我计算了偏移量,然后将其添加到时间戳中(以秒为单位),那么我可以使用下面的计算来给我一个字符串,以便按照我的要求进行格式化 var d = new Date((stamp + offset) * 1000); stamp是以秒为单位的日期/时间以及偏移量 这将返回我所在位置的当前日期和时间,但加上8小时。如果不添加偏移量,则时间

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

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

我想如果我计算了偏移量,然后将其添加到时间戳中(以秒为单位),那么我可以使用下面的计算来给我一个字符串,以便按照我的要求进行格式化

var d = new Date((stamp + offset) * 1000);
stamp是以秒为单位的日期/时间以及偏移量

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


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

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

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

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

编辑:


<代码>新数据().GETTimeZONoOffStET()/Case>将显示本地时区和UTC之间的区别,但您应该考虑使用UTC方法。

< P>只是添加它以防其他人看到后者。可能是错误的,但我需要的工作

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

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

你确定[你的当地时间]减去[8小时]吗?你从哪里得到[你是怎么得到的?