如何使用JavaScript获取包含今日在内的最近7天的星期名称
用JavaScript获取最近7天的中文星期名称
核心思路
- 定义中文星期名称的映射数组,对应JavaScript
Date.getDay()的返回值(0=周日,1=周一,…,6=周六)。 - 获取当前日期,通过循环向前推算指定天数,计算每天的星期名称。
- 根据需求调整结果格式(比如匹配你给出的示例,最后重复今日的星期)。
实现代码
方案1:获取今日及过去6天的星期(共7天)
如果实际需求是今日+往前6天(标准的最近7天范围),用这段代码:
// 定义中文星期数组,索引对应getDay()的返回值 const weekNames = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']; const result = []; const today = new Date(); // 循环7次,每次往前推i天(i从0到6,0代表今天) for (let i = 0; i < 7; i++) { const date = new Date(today); date.setDate(today.getDate() - i); // 往前推i天 result.push(weekNames[date.getDay()]); } console.log(result); // 示例(今天是星期三)输出:["星期三", "星期二", "星期一", "星期日", "星期六", "星期五", "星期四"]
方案2:匹配你给出的示例结果(最后重复今日星期)
如果需要和示例输出完全一致(多一个今日的星期),只需在结果末尾追加一次今日的星期名称:
const weekNames = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']; const result = []; const today = new Date(); const todayWeekName = weekNames[today.getDay()]; // 先添加今日,再往前推6天 result.push(todayWeekName); for (let i = 1; i <= 6; i++) { const date = new Date(today); date.setDate(today.getDate() - i); result.push(weekNames[date.getDay()]); } // 最后再添加一次今日 result.push(todayWeekName); console.log(result); // 示例(今天是星期三)输出:["星期三", "星期二", "星期一", "星期日", "星期六", "星期五", "星期四", "星期三"]
关键说明
new Date(today):每次循环创建新的Date对象,避免修改原日期变量导致的计算错误。date.setDate(today.getDate() - i):通过修改日期的“日”部分实现向前推算,自动处理跨月/跨年的边界情况(比如1月1日往前推1天会自动转为去年12月31日)。
内容的提问来源于stack exchange,提问作者fahmawiFloki
相关产品推荐
相关产品推荐

