【发布时间】:2018-03-13 20:27:44
【问题描述】:
我需要找到本月、上月和下月的具体日期。
例如,日期设置为每月 31 日,我希望得到的日期是 2018 年 2 月 28 日、2018 年 3 月 31 日和 2018 年 4 月 30 日。对于那些没有 31 的日期,它会变成前一天。
最后生成 2 个周期,2018-02-28 到 2018-03-29,2018-03-30 到 2018-04-31。 2月和31以下的月份不知道怎么处理。
var d = new Date();
var tyear = d.getFullYear(); //2018
var tmonth = d.getMonth(); //2
new Date(2018, tmonth-1, 31);//output 2018-03-02 not what I wanted
【问题讨论】:
-
new Date(2018, 2, 31);将是2018-02-31,它不存在。 -
你必须非常仔细地定义你的边缘案例几个月。 1 月 31 日 + 2 个月 = 3 月 31 日。 1 月 31 日 + 1 个月 + 1 个月 = 3 月 28 日!另一个例子:Jan31st - 1month + 1month = Jan31st,但是 Jan31st + 1month - 1month = Jan 28...玩得开心...
-
@dimwittedanimal 不,那将是 3 月 31 日,确实存在...
new Date(2018, 1, 31)(您可能的意思是)将是 3 月 3 日。 -
@sheeldotme 并不是每个月的最后一天,而是用户在开始时定义的任何一天。
标签: javascript jquery date