如何用JS将日期数字月份替换为Jan、Apr这类缩写名称?
获取英文月份缩写并替换日期格式里的数字月份
这里有两种简单的方法可以实现你的需求,把日期输出里的数字月份换成Jan/Apr这类英文缩写:
方法1:自定义月份缩写数组
这种方法直观可控,适合需要固定缩写格式的场景:
首先定义包含所有月份缩写的数组(注意getMonth()返回0-11,正好对应数组索引):
const monthAbbrs = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; const today = new Date(); // 拼接成你需要的格式:日期 月份缩写 年份 const formattedDate = `${('0' + today.getDate()).slice(-2)} ${monthAbbrs[today.getMonth()]} ${today.getFullYear()}`; $('#timeStampID').val(formattedDate);
运行后输入框就会输出类似23 Apr 2018的结果啦。
方法2:使用Intl.DateTimeFormat(推荐)
这是ES6+的原生API,更简洁且支持国际化,如果你只需要英文缩写,直接配置参数即可:
const today = new Date(); const datePart = ('0' + today.getDate()).slice(-2); // 直接获取英文月份缩写 const monthAbbr = today.toLocaleDateString('en-US', { month: 'short' }); const yearPart = today.getFullYear(); const formattedDate = `${datePart} ${monthAbbr} ${yearPart}`; $('#timeStampID').val(formattedDate);
这个方法不需要手动维护月份数组,浏览器会帮你处理正确的缩写,非常省心。
小提示
原来的代码里('0' + (today.getMonth() + 1)).slice(-2)是用来生成两位数字月份的,但现在我们直接通过getMonth()(0-11)匹配缩写,或者用原生API获取缩写,就不需要这个数字处理步骤啦。
内容的提问来源于stack exchange,提问作者Shalabh Negi
相关产品推荐
相关产品推荐

