我正尝试使用打字稿来获取下一个13个星期一的日期。
我尝试使用下面的代码,但是仅获取下周一的日期。我需要同时将剩余的星期一(日期)也添加到数组中。
我正在使用角度4和打字稿。
请提出任何有关此问题的想法。
下面是我的代码
var mondayDate = this.dateFrom;
var dateFrom = mondayDate.setDate(mondayDate.getDate() + (7 - mondayDate.getDay()) % 7 + 1);
var firstMonday = new Date(dateFrom);
-----------
-----------
非常感谢。
答案 0 :(得分:0)
这应该为您解决问题。
moment.js也是一个不错的选择
//d can be any date
var d = new Date();
d.setDate(d.getDate() +1);
function getNextMonday(anyDate){
var dayOfWeek= anyDate.getDay();
var aux=dayOfWeek?1:-6; //if it is sunday or not
var nextMonday= new Date();
nextMonday.setDate(anyDate.getDate() - dayOfWeek + aux +7)
return nextMonday;
}
console.log(getNextMonday(d));
答案 1 :(得分:0)
在此解决方案中,最终结果将为dd/mm/yyyy
格式。
var fromDate = new Date(2018, 10, 28); //28/11/2018
var toDate = new Date(2018, 11, 28); //28/12/2018
var tempDate = fromDate;
var noOfDays = Math.round((toDate-fromDate)/(1000*60*60*24));
var noOfWeek = noOfDays/7;
var mondays = [];
for(var i =0; i < noOfWeek; i++){
tempDate.setDate(tempDate.getDate() + (7 - tempDate.getDay()) % 7 + 1);
if(tempDate < toDate){
mondays.push(tempDate.getDate()+"/"+(tempDate.getMonth()+1)+"/"+tempDate.getFullYear());
}
}
console.log(mondays);
答案 2 :(得分:0)
一个简单的TypeScript解决方案
this.today = new Date();
this.nextMonday = new Date();
this.nextSunday = new Date();
// Use 1 for Monday
this.nextMonday.setDate((this.today.getDate() + (1 + 7 - this.today.getDay()) % 7));
// Use 7 for Sunday
this.nexySunday.setDate(this.today.getDate() + (7 + 7 - this.today.getDay()) % 7);
您会看到第一个数字是您想要的日期(1:星期一,2:星期二,... 7:星期日)。