2

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

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

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

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

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

PS 月在两个浏览器中是一致的。

4

1 回答 1

1

解析是正确的(前提是您确保时间戳是 UTC),错误在于您对Date实例的使用。

不要使用getYear但是getFullYear

来自MDN

getFullYear 返回的值是一个绝对数。对于 1000 年到 9999 年之间的日期,getFullYear 返回一个四位数字,例如 1995。使用此函数可确保年份与 2000 年之后的年份一致。

使用此方法而不是 getYear 方法。

于 2013-07-05T12:31:40.033 回答