天天看點

Ant Design Vue日期選擇器DatePicker設定日期格式、擷取并設定資料

導入

在使用日期選擇器前需要先引入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'))

});

給日期選擇框設定值,記錄一下。

下一篇: linux基礎