首页 文章

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

提问于
浏览
3

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

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

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

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

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

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

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

3 回答

  • 5

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

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

    编辑:

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

  • 1

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

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

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

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

相关问题