如何在JS中显示星期和星期几?

时间:2020-06-05 18:46:36

标签: javascript date

我需要显示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}`
}

但是它仅显示当前的日期,星期和月份。

当然每天都要更新。

1 个答案:

答案 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>