JavaScript日期格式化MM/DD/YYYY:解决getFullYear类型错误
问题解决:日期字符串转MM/DD/YYYY格式的报错处理
错误原因
你定义的UpdatedDate是字符串类型,不是JavaScript的Date对象,所以调用getFullYear()、getMonth()这类Date专属方法才会触发类型错误。不需要用toString(),反而要先把字符串转成合法的Date对象。
修正步骤及代码
- 将日期字符串转为可操作的Date对象
- 对月份、日期进行补零处理(保证是两位数字,匹配MM/DD格式要求)
- 拼接成目标格式的字符串
修正后的代码:
// 原日期字符串 let UpdatedDate = "Fri Jan 21 2022 00:00:00 GMT-0600 (CST)"; // 1. 转换为Date对象 const dateObj = new Date(UpdatedDate); // 2. 获取各部分并补零 const year = dateObj.getFullYear(); // 月份返回值是0-11,加1后转字符串补零 const month = String(dateObj.getMonth() + 1).padStart(2, '0'); // 日期转字符串补零 const day = String(dateObj.getDate()).padStart(2, '0'); // 3. 拼接成目标格式 UpdatedDate = `${month}/${day}/${year}`; console.log(UpdatedDate); // 输出:01/21/2022
关键说明
new Date(日期字符串):JavaScript可识别大部分标准格式的日期字符串,将其转换为具备方法的Date对象。padStart(2, '0'):把数字转为字符串后,不足两位的在头部补0,确保月份、日期都是两位数字,严格匹配MM/DD/YYYY格式。
内容的提问来源于stack exchange,提问作者codestrerrr
相关产品推荐
相关产品推荐

