使用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);
但是我需要得到的星期日是每隔一个星期天都符合以下模式。
10/20/18 11/03/18 11/17/18 18/12/01 18/12/15
答案 0 :(得分:2)
使用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-set/day/
如果您需要一个JS Date对象:
moment().day(7).toDate()
答案 1 :(得分:0)
这就是我仅使用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);
我可以通过访问返回的数组中的最后一项来获取所需的日期