我有来自服务的JSON响应,其中日期字段被编码为时间戳。值1251756000000
应该代表2009年9月(我只需要月份和年份)。
我发现我正在处理的脚本在浏览器中并不一致。
在Firefox 22 new Date(response.responseJSON.startDate).getYear()
上返回109并且必须添加到1900才能获得一致的值。
在IE7兼容模式下的IE10中,不得添加常量1900
。
问题是:如何在Javascript中一致地解析时间戳以获得月份和年份?
PS月份在两个浏览器中保持一致。
答案 0 :(得分:1)
解析是正确的(只要您确定时间戳是UTC),错误就在您对Date
实例的使用中。
请勿使用getYear
,getFullYear
。
来自the MDN:
getFullYear返回的值是绝对数字。对于日期 在1000和9999之间,getFullYear返回一个四位数 数字,例如,1995年。使用此功能确保一年 符合2000年后的年份。
使用此方法代替getYear方法。