[英]Get the dates for this current week and the next one
我想要一個包含本周和下周日期的數組。 我嘗試使用 for 循環和 while 循環來實現這一點,但目前沒有成功
getTwoWeeks = () => {
let twoWeeks = [];
let days = 14;
let today = new Date;
let calcFirst = today.getDate() - today.getDay();
let firstDayOfWeek = new Date(today.setDate(calcFirst));
for(let i=0; i<days; i++) {
twoWeeks.push( new Date(today.setDate(firstDayOfWeek + days[i])) )
}
console.log('twoWeeks===',twoWeeks )
}
您可以先計算本周的星期一,然后從那里迭代到 14 天。
const today = new Date(); const dayOfWeek = today.getDay(); const lastMonday = new Date(today.setDate(today.getDate() + (dayOfWeek * -1 + 1))); for (let i = 1, d = lastMonday; i <= 14; i++, d.setDate(d.getDate() + 1)) { console.log(new Date(d)); }
您可以按如下方式執行此操作:
getTwoWeeks = () => { let twoWeeks = []; let days = 14; let today = new Date(); twoWeeks.push(today) for(let i = 0; i < days-1; i++) { var next = new Date(); next.setDate(today.getDate()+1); twoWeeks.push(next); today = next; } console.log('twoWeeks===',twoWeeks ) } getTwoWeeks();
看起來您在 for 循環中濫用了索引“i”。 “days”不是一個數組,它是一個 integer。 嘗試以下操作:
let twoWeeks = []; let days = 14; let today = new Date; let calcDate = new Date(today.setDate(today.getDate() - today.getDay())); for(let i=0; i<days; i++) { calcDate.setDate(calcDate.getDate() + 1) twoWeeks.push(new Date(calcDate)) } console.log(twoWeeks)
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.