当我尝试添加日期的月份时,它正在跳过 11 月。我相信这是因为 11 月的夏令时。
下面的代码显示它比我想要的要跳一天:
var my_date = new Date(1377993599000);
console.log(my_date.toUTCString());
这将输出“2013 年 8 月 31 日星期六 23:59:59 GMT”
my_date.setUTCMonth(my_date.getUTCMonth() + 3);
console.log(my_date.toUTCString());
这将输出“Sun, 01 Dec 2013 23:59:59 GMT”
现在,当我尝试仅添加 2 时:
my_date.setUTCMonth(my_date.getUTCMonth() + 2);
console.log(my_date.toUTCString());
这将输出“2013 年 10 月 31 日星期四 23:59:59 GMT”
当我尝试将日期设置为零时:
my_date.setUTCMonth(my_date.getUTCMonth() + 3, 0);
console.log(my_date.toUTCString());
这将输出“2013 年 10 月 31 日星期四 23:59:59 GMT”
有谁知道解决这个问题的干净技巧?
我是否最好放弃 UTC 功能并简单地从所有时间中删除时区偏移量?如果我这样做了,它真的能解决我的问题吗?