我正在从数据库中检索日期列表,并从这些日期中获取月份。 当我得到该日期的月份时,它将返回一月份的0。
var date = new Date('2015-12-31T22:57:12.000Z').getMonth();
当我得到一个类似日期的月份时,它将在12月返回11。
var date2 = new Date('2015-12-31T12:24:29.000Z').getMonth();
答案 0 :(得分:4)
这将给出正确的结果:
var date = new Date('2015-12-31T22:57:12.000Z').getUTCMonth();
如果您的时区是GMT + 02,那么您也可以这样尝试:
var date = new Date('2015-12-31T22:57:12.000+0200').getMonth();
答案 1 :(得分:1)
您想为什么这两个12月 string 日期返回不同的月份?这就是答案:
从您的个人资料中,我可以看到您来自南非,这是 GMT + 2 时区。
首个日期字符串: 2015-12-31T22:57:12.000Z ,即12月31日和午夜 22.57 。在客户端浏览器端根据字符串日期创建日期对象时,会考虑您的本地时区。其 GMT + 2 。
因此,它会增加2个小时:2015-12-31T 22:57 :12.000Z + 2个小时=> 22.57 小时将在添加2个小时后转移到第二天hours(22.57 +2 =>次日00.57),即1月一个月的早晨0.57小时。因此它返回0(一月)月。
同时秒: 2015-12-31T12:24:29.000Z ,这是 12:24 小时,同一天将转换为14.24如上添加2小时后。因此,您仍处于12月31日,因此您将在12月收到该邮件。
答案 2 :(得分:-1)
javascript中的月份从0
到11
,天数从1
到31