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

如何在JavaScript中获取从周一到周日的本地化星期缩写名称?

在JavaScript中获取按周一至周日排序的本地化星期缩写名称

你可以利用JavaScript原生的Intl.DateTimeFormatAPI实现需求,这个API支持根据本地化规则处理日期格式,下面提供两种实用方案:

方案一:直接生成周一至周日的日期并格式化

通过构造已知的周一日期,循环生成后续一周的日期并逐个格式化,直接得到按顺序的缩写:

function getMondayFirstWeekdayAbbrs() {
  // 使用当前环境语言,也可指定具体locale如'en-US'、'zh-CN'
  const formatter = new Intl.DateTimeFormat(navigator.language, { weekday: 'short' });
  const weekdayAbbrs = [];
  // 2023年1月2日是周一,以此为基准生成一周的日期
  for (let dayOffset = 0; dayOffset < 7; dayOffset++) {
    const date = new Date(2023, 0, 2 + dayOffset);
    weekdayAbbrs.push(formatter.format(date));
  }
  return weekdayAbbrs;
}

// 调用示例
const abbrs = getMondayFirstWeekdayAbbrs();
console.log(abbrs);
// 中文环境输出:["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
// 英文环境输出:["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]

方案二:调整默认星期数组的顺序

部分locale下Intl.DateTimeFormat默认返回周日开头的星期数组,你可以先获取完整数组,再调整顺序将周一至前置、周日后置:

function getMondayFirstWeekdayAbbrs() {
  const formatter = new Intl.DateTimeFormat(navigator.language, { weekday: 'short' });
  // 2023年1月1日是周日,生成周日到周六的缩写数组
  const fullWeek = Array.from({ length: 7 }, (_, index) => {
    const date = new Date(2023, 0, 1 + index);
    return formatter.format(date);
  });
  // 截取周一至周六的部分,再拼接周日
  return [...fullWeek.slice(1), fullWeek[0]];
}

两种方案都能精准得到按周一至周日排序的本地化星期缩写,若需要固定特定语言输出,直接将navigator.language替换为目标locale字符串即可。

内容的提问来源于stack exchange,提问作者Matthieu Chavigny

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 19:43:22