如何在JS中显示日数和周数?



我需要显示 7 天的日数和周数 + 月份(5 年 6 月星期五......6 星期六,六月等(,我做了这样的事情:

const getCurrentDate = (d) => {
let months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
let days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; 
let day = days[d.getDay()];
let date = d.getDate();
let month = months[d.getMonth()];
return `${day}, ${date} ${month}`
}

但它只显示当前日期、周和月份。

当然每天它都必须更新。

您可以使用for loop并使用循环索引生成从今天开始的 7 个日期,方法是使用 setDate(( 方法在每个循环上向当前日期添加天数。

此外,您无需为月份和工作日创建数组。只需使用 toLocaleString 方法即可从日期获取工作日和月份。

检查并运行以下代码片段以获取上述方法的实际示例:

const today = new Date();
const showDate = document.querySelector("#showDate");
const getCurrentDate = (d) => {

for(let i=0; i<7; i++){
	let x = new Date(d);
	x.setDate(x.getDate() + i);
let day = x.toLocaleString('default', { weekday: 'long' });
let date = x.getDate();
let month = x.toLocaleString('default', { month: 'long' });

showDate.innerHTML += `${day}, ${date} ${month} <br/>`;
}   
}
getCurrentDate(today);
<h1>Dates below:</h1>
<h2 id="showDate"></h2>

或者@RobG评论中提到的,您可以使用toLocaleString在一行中生成工作日、日期和月份,如下所示:

const today = new Date();
const showDate = document.querySelector("#showDate");
const getCurrentDate = (d) => {

for(let i=0; i<7; i++){
	let x = new Date(d);
	x.setDate(x.getDate() + i);

let fullDate = x.toLocaleString('en-gb', { weekday: 'long', day:'numeric', month: 'long' });

showDate.innerHTML += `${fullDate}<br/>`;
}   
}
getCurrentDate(today);
<h1>Dates below:</h1>
<h2 id="showDate"></h2>

最新更新