将本地时区时间戳转换为UTC时间戳

时间:2018-10-04 13:22:40

标签: javascript timestamp

我的服务器返回日期数据作为本地时区时间戳。

在客户端,我想将这些日期显示为本地日期字符串。如果我执行以下操作,则日期输入错误(“ 6/30/2014”而不是“ 7/01/2014”)

var ts = 1404172800;
new Date(1404172800*1000).toLocaleDateString()
>>>"6/30/2014" 

为防止出现此问题,我想我必须在创建new Date()对象之前将从服务器收到的本地时区时间戳转换为UTC时间戳。

我是对的吗?在大多数浏览器上都能实现的最佳方法是什么?

修改

我确认本地时区的实际日期应为7/01/2014。那是当地的东部时间UTC -5(-4)。但是new Date()对象认为这是UTC,但不是。我想这是因为日期是作为时间戳返回的,而没有转换为UTC。

1 个答案:

答案 0 :(得分:2)

不是吗? Timestamps are always in UTC

您看到的是6月30日,而不是7月1日,因为当该事件发生时,在 local 时区仍然是6月30日。例如,对我来说,它在IST中显示为7月1日。

enter image description here

此外,此时间戳代表的事件恰好发生在2014年7月1日格林尼治标准时间00:00:00。如屏幕截图所示,印度是GMT + 05:30-因此,如果 local 时区,即使是GMT减去一分钟,也仍然是6月30日。