鍍金池/ 問答/HTML/ Datepicker從接口獲取數(shù)據(jù)后,更新時不選時間會報錯value.getTi

Datepicker從接口獲取數(shù)據(jù)后,更新時不選時間會報錯value.getTime() is not a function

Datepicker從接口獲取數(shù)據(jù)后,更新時如果不重新選擇時間的話會報錯value.getTime() is not a function,
如果重新選擇時間就不會報錯。


        <Form-item label="開始日期" prop="beginAt">
          <Date-picker v-model="activityDetails.beginAt" " type="datetime" placeholder="請選擇開始日期"></Date-picker>
        </Form-item>
        <Form-item label="結(jié)束日期" prop="endAt">
          <Date-picker v-model="activityDetails.endAt" type="datetime" placeholder="請選擇結(jié)束日期"></Date-picker>
        </Form-item>
          beginAt: [
            {required: true, message: '開始日期不能為空', type: 'date', trigger: 'change'}
          ],
          endAt: [
            {required: true, message: '結(jié)束日期不能為空', type: 'date', trigger: 'change'}
          ],
        let beginTime = (new Date(this.activityDetails.beginAt)).getTime();
        let endTime = (new Date(this.activityDetails.endAt)).getTime();

        if (beginTime > endTime) {
          this.$Message.error('開始日期不能大于結(jié)束日期!');
          this.loading = false;
          return false;
        } else {
            this.axios.put('/operation/v1/activity', this.activityDetails)
        }

圖片描述

回答
編輯回答
焚音

補充加回答:在獲取接口數(shù)據(jù)的時候就要把日期類型改成date格式,不改的話獲取的是string類型,就會出現(xiàn)上述問題:value.getTime() is not a function.

        this.axios.get('/operation/v1/activity/no/' + this.$route.params.activityNo)
          .then(response => {
            let details = response.data.data;
            details.ifShowName = details.ifShowName === 1;
            details.ifShowPhone = details.ifShowPhone === 1;
            details.ifShowWechat = details.ifShowWechat === 1;
            details.ifShowEmail = details.ifShowEmail === 1;
            details.beginAt = new Date((details.beginAt + '.000Z').replace(' ', 'T'));
            details.endAt = new Date((details.endAt + '.000Z').replace(' ', 'T'));
            this.activityDetails = details;
          })
2017年7月12日 20:32
編輯回答
浪婳

你的這個問題,我是這么解決的,<DatePicker type="date" placeholder="選擇日期" :value="item.value"></DatePicker>,這里用的是:value,對應(yīng)類型是string;如果用的是v-model,對應(yīng)類型是date。而我的驗證規(guī)則是:rules='[{"message": "不能為空","required": 1},{"pattern": null,"type": "string","message": null}]',所以根據(jù)type類型寫value/v-model,完美通過驗證!

2017年5月8日 08:14
編輯回答
挽歌

我也遇到過這個問題,后來通過new Date()解決了,在此mark一下,給后來者
this.formInfo.began_time = new Date(res.data.data.began_time)
this.formInfo.end_time = new Date(res.data.data.end_time)

2017年9月28日 10:49
編輯回答
冷咖啡
    var getTime = function(str) {
        var str = new Date(str);
        return str;
    };
2017年12月14日 21:38