【发布时间】:2013-08-03 00:16:20
【问题描述】:
当我尝试添加日期的月份时,它会跳过 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 功能并简单地从所有时间中删除时区偏移量?如果我这样做,它真的能解决我的问题吗?
【问题讨论】:
标签: javascript date utc dst