我需要得到接下来三个月的周日列表,我写了一个函数,直到今天还能工作,从今天起的三个月是一月,这是0,所以我的for循环不起作用。
function getSundays(year) {
const offdays = [];
let i = -1;
const currentDate = new Date();
currentDate.setDate(currentDate.getDate() + 90);
for ( let month = new Date().getMonth(); month < currentDate.getMonth(); month += 1) {
const tdays = new Date(year, month, 0).getDate();
for (let date = 1; date <= tdays; date += 1) {
const smonth = (month < 9) ? `0${month + 1}` : month + 1;
const sdate = (date < 10) ? `0${date}` : date;
const dd = `${year}-${smonth}-${sdate}`;
const day = new Date();
day.setDate(date);
day.setMonth(month);
day.setFullYear(year);
if (day.getDay() === 0 ) {
offdays[i += 1] = dd;
}
}
}
return offdays;
}
字符串
我该怎么办?
6条答案
按热度按时间dw1jzc5e1#
假设每个月有4个星期天。
字符串
0kjbasz62#
请测试下面的代码。
个字符
iqih9akk3#
如果你想要一个不基于momentjs的方法,也许你可以这样做?
这个方法每次递增一天,持续到未来的三个月,并查找任何
getDay() === 0
(即星期日)的日期示例。增量是通过
milliseconds
完成的,这是一种为特定的日/月/年创建日期对象的方便方法。月份计数器跟踪currentDate
和nextDate
之间的月/年变化,以确定是否应该增加月份计数器:字符串
sqserrrh4#
您可以使用Date get的方法|setMonth和get| setDay,就像一个make this:
个字符
lzfw57am5#
看了一些已经给出的答案,他们似乎很接近,激励我在不使用moment.js的情况下尝试一下-评论很多,希望能解释它,但它对我理解问题很有效,虽然你可能需要为你的目的塑造
result
值,但它包含了你需要的东西,我相信。字符串
型
sulc1iza6#
这是更一般的,非常简单,并将工作90或900天到未来
字符串