在Javascript中跨浏览器一致地从JSON时间戳解析日期

时间:2013-07-05 12:29:41

标签: javascript datetime cross-browser timestamp

我有来自服务的JSON响应,其中日期字段被编码为时间戳。值1251756000000应该代表2009年9月(我只需要月份和年份)。

我发现我正在处理的脚本在浏览器中并不一致。

在Firefox 22 new Date(response.responseJSON.startDate).getYear()上返回109并且必须添加到1900才能获得一致的值。

在IE7兼容模式下的IE10中,不得添加常量1900

问题是:如何在Javascript中一致地解析时间戳以获得月份和年份?

PS月份在两个浏览器中保持一致。

1 个答案:

答案 0 :(得分:1)

解析是正确的(只要您确定时间戳是UTC),错误就在您对Date实例的使用中。

请勿使用getYeargetFullYear

来自the MDN

  

getFullYear返回的值是绝对数字。对于日期   在1000和9999之间,getFullYear返回一个四位数   数字,例如,1995年。使用此功能确保一年   符合2000年后的年份。

     

使用此方法代替getYear方法。