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

JavaScript如何从datetime字符串提取月份名和年份输出Jan-2022格式

JS提取指定日期字符串的月年格式方案

你要处理的日期字符串固定为日-3位月份缩写-4位年份 时间 (时区)结构,可通过以下两种方式实现MMM-YYYY格式输出:

方法1:固定格式字符串拆分(生产环境推荐,无兼容性问题)

因为字段格式固定,直接按分隔符截取目标片段即可,完全规避日期解析的时区、浏览器兼容问题:

// 示例源数据
const rawData = {
  Month: "31-Jan-2022 12:00 AM (EST)"
};

// 处理逻辑
const [dateSection] = rawData.Month.split(' '); // 拆分空格取第一段日期主体:"31-Jan-2022"
const [, monthAbbr, year] = dateSection.split('-'); // 按横杠拆分取月份、年份段
const formatResult = `${monthAbbr}-${year}`;

console.log(formatResult); // 输出:Jan-2022

方法2:调用原生日期API解析提取

如果需要使用JavaScript日期处理函数实现,注意原字符串末尾的括号时区标识会导致部分浏览器解析失败,需要先做清洗再解析:

const rawData = {
  Month: "31-Jan-2022 12:00 AM (EST)"
};

// 清洗掉末尾括号包裹的时区内容
const validDateStr = rawData.Month.replace(/\([A-Z]+\)$/, '').trim();
const dateObj = new Date(validDateStr);

// 通过国际化接口取英文月份缩写,避免本地环境语言影响输出
const monthAbbr = new Intl.DateTimeFormat('en-US', { month: 'short' }).format(dateObj);
const year = dateObj.getFullYear();
const formatResult = `${monthAbbr}-${year}`;

console.log(formatResult); // 输出:Jan-2022

注意:该方法存在兼容性风险,不同JavaScript引擎对非ISO标准日期字符串的解析规则不统一,例如部分低版本Safari会解析失败,非必要不优先使用。

内容的提问来源于stack exchange,提问作者C Sharper

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 09:06:52