我需要显示7天(6月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}`
}
但是它仅显示当前的日期,星期和月份。
当然每天都要更新。
答案 0 :(得分:2)
您可以只使用for loop
,并使用setDate()方法在每个循环的当前日期加上天数,从而使用循环索引从今天开始生成7个日期。
此外,您无需在月份和工作日中创建数组。只需使用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>