如何在JavaScript中将日期转换为类似‘27 march 2023’格式的字符串?
在JavaScript中将日期转换为指定格式字符串的方法
要把2023-07-05这类YYYY-MM-DD格式的日期转换成DD month YYYY(月份为小写全称)的格式,这里提供两种实用方法:
方法一:使用Intl.DateTimeFormat(推荐,本地化友好)
现代浏览器和Node.js都支持Intl.DateTimeFormat,它能轻松处理日期的本地化格式化,我们可以通过配置选项并重组结果来得到目标格式:
const inputDate = '2023-07-05'; const date = new Date(inputDate); // 配置格式化规则:2位数日期、全称月份、4位数年份,语言设为英文 const formatter = new Intl.DateTimeFormat('en-US', { day: '2-digit', month: 'long', year: 'numeric' }); // 拆分格式化后的各部分,重组为目标格式 const formattedParts = formatter.formatToParts(date); const day = formattedParts.find(part => part.type === 'day').value; const month = formattedParts.find(part => part.type === 'month').value.toLowerCase(); const year = formattedParts.find(part => part.type === 'year').value; const result = `${day} ${month} ${year}`; console.log(result); // 输出 "05 july 2023"
方法二:手动映射月份(轻量无依赖)
如果不需要本地化支持,直接通过数组映射月份名称的方式更直接:
const inputDate = '2023-07-05'; const date = new Date(inputDate); // 定义小写的英文月份全称数组,索引对应Date.getMonth()的返回值(0-11) const months = [ 'january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december' ]; // 确保日期为2位数,拼接结果 const day = String(date.getDate()).padStart(2, '0'); const month = months[date.getMonth()]; const year = date.getFullYear(); const result = `${day} ${month} ${year}`; console.log(result); // 输出 "05 july 2023"
注意事项
- 若遇到旧浏览器不兼容ISO格式日期的情况,可以手动拆分字符串构造Date对象:
const inputDate = '2023-07-05'; const [year, month, day] = inputDate.split('-'); // Date的月份参数是0-based,所以要减1 const date = new Date(year, month - 1, day);
内容的提问来源于stack exchange,提问作者Zidan gaming 00
相关产品推荐
相关产品推荐

