ReactJS中date.getDate is not a function报错及日期格式转换咨询
问题原因
你调用getDate()等日期方法的前提是传入值为JavaScript Date对象,但你用的日期选择器返回的是YYYY-MM-DD格式的字符串,本身没有日期实例的方法,所以会抛出类型错误。
修复方案
第一步:修改日期转换函数
先将传入的字符串转换为Date实例,同时优化补零逻辑,保证日、月都是两位格式:
convertDateFormat(dateStr) { // 先把字符串转成Date对象 const date = new Date(dateStr); // 处理无效日期的边界情况,避免返回异常内容 if (isNaN(date.getTime())) return ''; // 补零逻辑,保证日、月不足两位时前面补0 const day = String(date.getDate()).padStart(2, '0'); const month = String(date.getMonth() + 1).padStart(2, '0'); const year = date.getFullYear(); return `${day}/${month}/${year}`; }
如果需要兼容低版本浏览器,可替换Date初始化逻辑,避免部分浏览器对YYYY-MM-DD格式解析异常:
const date = new Date(dateStr.replace(/-/g, '/'));
第二步:调用逻辑保持不变
原有的dispatch代码无需改动,直接传入日期选择器返回的字符串即可:
dispatch(Order(convertDateFormat(inputs.datePickerdate)));
可选优化
如果你的日期选择器支持直接返回Date对象,可以在选择器的配置项中开启该功能,就不需要额外做字符串转Date的操作。
内容的提问来源于stack exchange,提问作者user6517334
相关产品推荐
相关产品推荐

