如何在JavaScript函数中将日期格式化为2020JAN30格式?
解决JavaScript日期格式化问题:输出2020JAN30格式
我来帮你搞定这个日期格式化的需求!你之前的尝试里,直接返回Date对象会得到浏览器默认的冗长日期字符串,而用new Date('YYYYMDD')完全行不通——因为JavaScript的Date构造函数根本不认识这种自定义格式,所以才会触发错误。
下面是实现你想要的2020JAN30格式的完整函数:
function formatDate() { const d = new Date(); // 获取4位完整年份 const year = d.getFullYear(); // 定义月份缩写数组,对应0-11的月份索引(JS中一月是0) const monthAbbrs = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC']; // 匹配对应月份的大写缩写 const month = monthAbbrs[d.getMonth()]; // 获取日期,不足两位自动补0(比如1号转为01) const day = String(d.getDate()).padStart(2, '0'); // 拼接成目标格式返回 return `VZW Dfill - ${year}${month}${day}`; }
关键代码说明:
d.getFullYear():返回4位数字的年份(比如2020),比老旧的getYear()更可靠,不会出现年份偏移问题。monthAbbrs数组:因为d.getMonth()返回0(一月)到11(十二月)的数字,用数组索引直接匹配对应的大写月份缩写,完美契合需求。String(d.getDate()).padStart(2, '0'):把日期转为字符串后,用padStart方法确保日期始终是两位格式,和你示例里的30保持统一。
测试这个函数时,当系统日期是2020年1月30日,会精准返回你想要的结果:VZW Dfill - 2020JAN30。
如果后续需要处理指定日期而非当前日期,只需要把new Date()替换成目标日期对象(比如new Date('2020-01-30'))即可。
内容的提问来源于stack exchange,提问作者ellucidone
相关产品推荐
相关产品推荐

