JSON日期转换为时间字符串

时间:2012-12-14 17:31:17

标签: javascript datetime

遇到一个JavaScript日期怪异,我无法解决这个问题。

我有通过WebAPI返回的日期/时间:'2012-12-13T12:17:06.080'。它在当地时间(-7 UTC)。

通过JavaScript运行此日期

var d = new Date('2012-12-14T05:32:05.543');
alert(d.toTimeString());

返回 22:32:05 MST

然后做

var d = new Date('2012-12-14T05:32:05.543');
alert(d.toLocaleTimeString());

返回 10:32:05 PM

toTimeString / toLocaleTimeString()每个JavaScript文档说它应该只提取时间部分,为什么时间会改变?我应该怎么做才能让它返回正确的时间部分 05:32:05 而不创建一个所谓的不需要的功能?

2 个答案:

答案 0 :(得分:1)

当您为Date()构造函数提供ISO8601时间戳字符串时,总是将其解释为UTC。

并非所有浏览器的行为都相同,有些浏览器根本不喜欢这些。

答案 1 :(得分:1)

以下是解决问题的方法:

  

获取日期的部分并手动构造日期对象。

我附上了一个展示http://jsbin.com/iduzaz/3/watch

的JSBin