使用javascript每隔一个星期天获取与特定星期相匹配的时间



使用javascript,我需要获得与特定模式匹配的下一个即将到来的日期。

我需要的日期是一个星期天,我可以这样得到下一个星期日:

const date = new Date();
const diff = date.getDay() - 7;
if (diff > 0) {
date.setDate(date.getDate() + 6);
} else if (diff < 0) {
date.setDate(date.getDate() + ((-1) * diff));
}
console.log(date);

但我需要得到的周日是每隔一个周日都符合以下模式。

2018年10月20日2018年3月11日2018年11月17日2018年1月12日2018年12月15日

使用momentjs很容易,如下所示:

moment().day(-7) // returns last Sunday
moment().day(0) // returns this Sunday
moment().day(7) // returns next Sunday object
moment().day(14) // returns next+1 Sunday object

http://momentjs.com/docs/#/get-台/天/

如果您需要JS Date对象:

moment().day(7).toDate()

这是我只用javascript就想到的。也许有一种更好更有效的方法

function getDateArray(start, end = new Date()) {
const arr = new Array();
const sd = new Date(start);
while (sd <= end) {
const d = new Date(sd);
const d2 = new Date(d);
d2.setDate(d2.getDate() + 13);
const v = d.valueOf();
const ds1 = d.toDateString();
const ds2 = d2.toDateString();
const obj = { label: `From: ${ds1} To: ${ds2}`, value: v };
arr.push(obj);
sd.setDate(sd.getDate() + 14);
}
return arr;
}
const today = new Date();
getDateArray('08/19/18', today);

我可以通过访问返回数组中的最后一个项目来获得我需要的日期

最新更新