導入
在使用日期選擇器前需要先引入momnet:
import moment from "moment";
import "moment/locale/zh-cn"
在引入後使用選擇器:
<a-date-picker
format="YYYY-MM-DD HH:mm:ss"
v-decorator="['time',{rules: [{ required: true, message: '請輸入時間!' }]}]"
:showTime="{ initialValue: moment('00:00:00', 'HH:mm:ss') }"
placeholder="請選擇時間"
@change="onChange"
@ok="onOk" />
這裡的format 屬性,用于自定義日期顯示格式,我這裡使用的是 2020-08-25,showTime是展示預設時間的,但是,嗯,我設定了好像沒什麼用,可能有問題,可以給我留言,說一下這個是什麼問題。。多謝。
擷取時間的方式
方式一:
在上述操作完成後,事件的添加:
methods: {
moment,
onChange (value, dateString) {
console.log('Selected Time: ', value)
console.log('Formatted Selected Time: ', dateString)
},
onOk (value) {
console.log('onOk: ', value)
}
這裡可以擷取你需要的日期資料 dateString ,如下圖:
可以看到這裡的dateString是你可以擷取得到的時間資料。
這個是擷取時間,通過v-model設定的話可以采用方式一擷取使用擷取。
方式二:
如果你表單内采用v-decorator進行資料綁定,也可以通過表單的方式擷取:
擷取到之後需要采用moment進行格式轉換
this.form.validateFields((err, values) => {
if (!err) {
console.log('Received values of form: ', values);
values.time = moment(values.time).format('YYYY-MM-DD HH:mm:ss')
}
})
這個time與我上述a-input标簽内的v-decorator綁定的資料一緻。
這樣你可以拿到表單内time的資料并轉換格式。
在說完擷取資料後,再說一下日期選擇器設定資料吧
設定資料
如果你拿到個日期資料,背景傳回的json資料,我拿到的為字元串,但是我直接設定不上去,是因為日期選擇器這裡會報錯,我報錯沒截圖,但是記得這個會報需要拿到的是日期對象,而不能設定字元串。
是以,在設定資料前先對資料進行moment進行格式轉換
用法:在設定資料前先轉化要設定的時間格式:
this.form.setFieldsValue({
// "date": moment("自定義預設日期", 'YYYY-MM-DD')
“startTime": moment(this.startTime)
第一行是如果你格式不對時,添加後面的格式,正常就不需要添加後面的格式。
設定資料的核心就是這樣子,也可以其他方式實作。
後面的是為自己記錄:
昨天寫了表單設定值,方式二 内的東西:
this.form.resetFields();
this.model = Object.assign({}, this.record,{time: moment(this.record.time)});
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, ',name', 'age'))
});
給日期選擇框設定值,記錄一下。