iview的DatePicker组件,设置起止时间范围,无法精确到小时?

新手上路,请多包涵

两个日期选择框,设置起止时间,时间可选范围是6个小时,譬如我选开始时间选择2019-4-17 00:00:00,结束时间可选只能是2019-4-17 00:00:00至2019-4-17 06:00:00,有一个问题就是当我开始时间选择2019-4-17 22:00:00时,第二个日期选择器可选时间范围是2019-4-18 00:00:00 至 2019-4-18 04:00:00,问题就是我无法选择2019-4-17 22:00:00 至 2019-4-17 23:59:59 中的任意一时间,同理我先选第二个选择框设置截止时间,设置开始时间时也会有同样的问题。

<template>
  <div id="app">
    <Row>
      <Col span="12">
        <DatePicker 
        type="datetime" 
        v-model="pointDTO.startTime" 
        :options="startOptions" 
        placeholder="Select date" 
        style="width: 200px"></DatePicker>
      </Col>
      <Col span="12">
        <DatePicker 
        type="datetime" 
        v-model="pointDTO.endTime" 
        :options="endOptions" 
        placeholder="Select date" 
        style="width: 200px"></DatePicker>
      </Col>
    </Row>
  </div>
</template>

<script>

export default {
  name: 'app',
  data() {
    return {
      pointDTO: {
        startTime: '',
        endTime: '',
      }
    }
  },
  components: {

  },
  methods: {
    getMsg(msg) {
      alert(msg);
    }
  },
  computed: {
    startOptions() {
      const THIS = this;
      return {
        disabledDate(date) {
          const dateVal = date.valueOf();
          if (!THIS.pointDTO.endTime) {
            return dateVal > Date.now();
          }

          return dateVal > THIS.pointDTO.endTime.valueOf() || dateVal < THIS.pointDTO.endTime.valueOf() - 21600000;
        },
      };
    },
    endOptions() {
      const THIS = this;
      return {
        disabledDate(date) {
          const dateVal = date.valueOf();

          if (!THIS.pointDTO.startTime) {
            return dateVal > Date.now();
          }

          return dateVal < THIS.pointDTO.startTime.valueOf() || dateVal > THIS.pointDTO.startTime.valueOf() + 21600000;
        },
      };
    },    
  },
}
</script>
阅读 5.7k
1 个回答
新手上路,请多包涵

你解决了吗?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题