问题:当使用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">
通过这个方法,上面的报错就可以解决了。