a-date-picker格式化时间报错Type Error:date4.locale is not a function

问题:当使用a-date-picker选择时间后需要对事件进行字符串格式化处理,这时候无论是使用a-date-picker自带的格式化插件dayjs还是自己封装的时间格式化函数,均会报错。

会报错的两种写法:

1、使用dayjs

const time = dayjs(start_time).format("YYYY-MM-DD HH:mm:ss")

2、自己封装函数

export function formatDateTime(dates:any){
  var date = new Date(dates)
  var year = date.getFullYear();  
  
  // 注意:JavaScript 中的月份是从0开始的,所以需要+1  
  var month = ("0" + (date.getMonth() + 1)).slice(-2);  
  
  // 日期需要确保总是两位数  
  var day = ("0" + date.getDate()).slice(-2);  
  
  // 小时(24小时制)  
  var hours = ("0" + date.getHours()).slice(-2);  
  
  // 分钟  
  var minutes = ("0" + date.getMinutes()).slice(-2);  
  
  // 秒  
  var seconds = ("0" + date.getSeconds()).slice(-2);  
  
  // 拼接成字符串  
  return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
}

上面两种方法均会报错:TypeError: date4.locale is not a function

解决方法:

使用a-date-picker自带的api:valueFormat。

实现代码:

 <DatePicker :valueFormat="'YYYY-MM-DD HH:mm:ss'" v-model:value="start_time">

通过这个方法,上面的报错就可以解决了。