Javascript中这些日期之间的差异?为什么不是所有浏览器都给出相同的结果呢?
如果Z出现,我会得到一个不同的时间 当Z存在时,是否将日期转换为浏览器的本地时间;当Z不存在时,是否假设它已经在本地时间 我在FF中得到的结果与Chrome不同。Chrome总是给我同样的时间。FF认为它们是不同的。我应该如何处理来自服务器的UTC日期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) 这
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