使用javascript获取与特定星期匹配的所有其他星期日

时间:2018-11-16 05:33:32

标签: 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);

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

10/20/18 11/03/18 11/17/18 18/12/01 18/12/15

2 个答案:

答案 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);

我可以通过访问返回的数组中的最后一项来获取所需的日期