You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript获取包含今日在内的最近7天的星期名称

用JavaScript获取最近7天的中文星期名称

核心思路

  1. 定义中文星期名称的映射数组,对应JavaScript Date.getDay() 的返回值(0=周日,1=周一,…,6=周六)。
  2. 获取当前日期,通过循环向前推算指定天数,计算每天的星期名称。
  3. 根据需求调整结果格式(比如匹配你给出的示例,最后重复今日的星期)。

实现代码

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 13:15:21