首先,只要非常简单的组件引入写法:
然后myDate在data()中是字符串类型
myDate: ''
然后增加一个方法在提交表单到后台的时候,用来转化日期对应到myDate成字符串类型,并且对应到java类
javascript
function checkType(value) {
if (typeof value === 'string') {
console.log('This value is a string.');
} else if (value instanceof Date) {
console.log('This value is a Date.');
} else {
console.log('This value is neither a string nor a Date.');
}
}
let dateString = '2023-10-11';
let dateObject = new Date('2023-10-11');
注意点选的日期会是Date()类型
javascript
let date = new Date();
let dateString = `${date.getFullYear()}-${(date.getMonth() + 1).toString
().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`;
console.log(dateString); // Outputs: "2023-10-11"
以上代码汇总:
javascript
<el-date-picker v-model="myDate"></el-date-picker>
myDate: ''
function checkType(value) {
if (typeof value === 'string') {
return value.replace(/\//g, "-")
} else if (value instanceof Date) {
let dateString = `${date.getFullYear()}-${(date.getMonth() + 1).toString
().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`
return dateString
} else {
console.log('This value is neither a string nor a Date.');
}
}
formDate.completeDate = dateString
java对应参数类
java
@JsonFormat(pattern="yyyy-MM-dd", timezone="Asia/Shanghai")
private Date completeDate;
注意特殊情况:
v-model中不要连续嵌套多个变量比如:
如果有多个变量嵌套的情况,则v-model先绑定到一个中介变量,然后通过watch中介变量,转换格式后,再对
a.b.c.myDate赋值。
另外,直接选择日期的时候,一般其实个Date对象,但是很多人会将myDate直接声明为'',所以才会出现可能不能点选的问题,所以才会引入以上需要转化之类的操作。