Javascript中这些日期之间的差异?为什么不是所有浏览器都给出相同的结果呢?

Javascript中这些日期之间的差异?为什么不是所有浏览器都给出相同的结果呢?,javascript,utc,Javascript,Utc,如果Z出现,我会得到一个不同的时间 当Z存在时,是否将日期转换为浏览器的本地时间;当Z不存在时,是否假设它已经在本地时间 我在FF中得到的结果与Chrome不同。Chrome总是给我同样的时间。FF认为它们是不同的。我应该如何处理来自服务器的UTC日期 var dt = new Date("2012-04-23T12:00:00"); var dtz = new Date("2012-04-23T12:00:00Z"); 尝试使用alert()并收到这些消息 警报(dt) 警报(dtz) 这

如果Z出现,我会得到一个不同的时间

当Z存在时,是否将日期转换为浏览器的本地时间;当Z不存在时,是否假设它已经在本地时间

我在FF中得到的结果与Chrome不同。Chrome总是给我同样的时间。FF认为它们是不同的。我应该如何处理来自服务器的UTC日期

var dt = new Date("2012-04-23T12:00:00");

var dtz = new Date("2012-04-23T12:00:00Z");
尝试使用alert()并收到这些消息

警报(dt)

警报(dtz)

这意味着,如果您创建的日期没有“Z”,它将返回浏览器在GMT的本地时间,并指出您所在的时区低于或高于GMT

如果你用“Z”来创建它,它会显示你所在时区的当地时间,指的是你所在的时区

尝试使用alert()并收到这些消息

警报(dt)

警报(dtz)

这意味着,如果您创建的日期没有“Z”,它将返回浏览器在GMT的本地时间,并指出您所在的时区低于或高于GMT

如果您使用“Z”创建它,它将显示您所在时区的本地时间,指的是您所在的时区。

“Z”对应于UT(又称UTC,又称GMT)。所以基本上,'nnnz'的意思是“格林威治的'nnn'在你的时区有多晚”。例如,我在其中是GMT+2,所以

Mon Apr 23 2012 17:00:00 GMT+0500 (West Asia Standard Time)
给我的回报:

new Date("2012-04-23T12:00:00Z")
至于带有TZ说明符的日期,Firefox(假定为本地TZ)和Chrome(假定为UTC)对它们的处理似乎有所不同。为了安全起见,我建议始终使用显式的TZ说明符。

“Z”对应于UT(也称UTC,也称GMT)。所以基本上,'nnnz'的意思是“格林威治的'nnn'在你的时区有多晚”。例如,我在其中是GMT+2,所以

Mon Apr 23 2012 17:00:00 GMT+0500 (West Asia Standard Time)
给我的回报:

new Date("2012-04-23T12:00:00Z")

至于带有TZ说明符的日期,Firefox(假定为本地TZ)和Chrome(假定为UTC)对它们的处理似乎有所不同。为了安全起见,我建议始终使用明确的TZ说明符。

根据ISO 8601,如果没有使用时间表示给出UTC关系信息,则假定时间为本地时间

如果您可以验证Firefox、Safari和Internet Explorer上的行为是否正确:

以下内容应返回:false

Mon Apr 23 2012 14:00:00 GMT+0200 (CEST)
如果您在Chrome或Opera上尝试相同的操作,它将显示错误:true


这个故事的寓意是,如果您有一个以上格式的字符串,请在末尾添加一个Z。

根据ISO 8601,如果没有使用时间表示给出UTC关系信息,则假定时间为本地时间

如果您可以验证Firefox、Safari和Internet Explorer上的行为是否正确:

以下内容应返回:false

Mon Apr 23 2012 14:00:00 GMT+0200 (CEST)
如果您在Chrome或Opera上尝试相同的操作,它将显示错误:true

这个故事的寓意是,如果您有一个以上格式的字符串,请在末尾添加一个Z