JavaScript中如何将"20-05-2022"格式的日期转换为字符串?
解决"DD-MM-YYYY"格式日期转换为有效字符串的问题
直接使用new Date("20-05-2022")会返回Invalid Date,原因是JavaScript的Date构造函数对非标准日期格式的解析逻辑不一致,这种日-月-年的格式无法被正确识别。
下面是两种可行的解决方法:
方法一:拆分重组日期,构造有效Date对象
先把字符串按-拆分,提取日、月、年,再传入Date构造函数(注意:Date的月份参数是0~11,所以要把提取的月份减1):
let date = "20-05-2022"; const [day, month, year] = date.split("-"); // 月份减1,确保日期正确 const validDate = new Date(year, month - 1, day); console.log(validDate.toString()); // 输出示例:Fri May 20 2022 00:00:00 GMT+0800 (中国标准时间)
方法二:自定义格式输出字符串
如果需要特定格式的日期字符串,可以在构造有效Date对象后,自行拼接或使用国际化API格式化:
let date = "20-05-2022"; const [day, month, year] = date.split("-"); const validDate = new Date(year, month - 1, day); // 自定义拼接格式 const customFormat = `${year}-${month}-${day}`; console.log(customFormat); // 2022-05-20 // 使用Intl.DateTimeFormat格式化(支持多语言) const intlFormat = new Intl.DateTimeFormat('zh-CN', { year: 'numeric', month: '2-digit', day: '2-digit', hour12: false }).format(validDate); console.log(intlFormat); // 2022/05/20
内容的提问来源于stack exchange,提问作者Ravichandran
相关产品推荐
相关产品推荐

