如何获得当前日期javascript的前4个星期日

时间:2018-03-01 19:07:02

标签: javascript html date

我想用JavaScript来生成当前日期的前四个星期日 例如,如果当前日期是 2018-3-1 ,我想获得2018-2-25,2018-2-18,2018-2-11,2018-2-4。

我有这个代码,但它只给了我当前日期的前一个星期日 我怎样才能获得前四个星期日?

var dt = new Date();
var currentWeekDay = dt.getDay();
var lessDays = currentWeekDay == 0 ? 6 : currentWeekDay - 0;
var sunday = new Date(new Date(dt).setDate(dt.getDate() -
  lessDays));

console.log(sunday);

2 个答案:

答案 0 :(得分:2)

一个想法是使用loop。将返回的星期日送回循环。
下面,我将返回的日期存储在一个数组中。



var date = new Date();
var loop_count = 4;
var days = [];
var prev_sunday;
var loop_index;

function getPreviousSunday(date) {
  return new Date(
    new Date(date).setDate(
      date.getDate() - (date.getDay() || 7)
    )
  );
}

for (loop_index = 1; loop_index <= loop_count; loop_index++) {
  prev_sunday = getPreviousSunday(prev_sunday || date);
  days.push(prev_sunday);
}

console.log(date);
console.log(days);
&#13;
&#13;
&#13;

答案 1 :(得分:0)

这是一种方法,可让您调整哪一天以及过去几天的频率。

function findPreviousDay(oDate, day, occurence){
 var weekday = [];
 var prevDays = [];

 weekday.sunday = 0;
 weekday.monday = 1;
 weekday.tuesday = 2;
 weekday.wednesday = 3;
 weekday.thursday = 4;
 weekday.friday = 5;
 weekday.saturday = 6;

 for(i=0;i<occurence;i++){
  prevDay = new Date(oDate).setDate(oDate.getDate()-oDate.getDay()+weekday[day.toLowerCase()]-i*7);
  prevDays.push(new Date(prevDay));
 }

 return prevDays;
}

var d = new Date("3/1/2018");

listOfDays = findPreviousDay(d, "sunday",4);

listOfDays.forEach(function(day){
    document.write(day+"<br/>");
});

Try it out!

相关问题