当前位置:首页 > VUE

vue实现日期范围选择

2026-02-23 15:39:15VUE

使用 Vue 实现日期范围选择

安装依赖

使用 vue2-datepickerelement-ui 的日期选择组件,安装对应的库:

npm install vue2-datepicker --save
# 或
npm install element-ui --save

基本实现(vue2-datepicker)

在组件中引入 vue2-datepicker 并配置日期范围选择:

vue实现日期范围选择

<template>
  <date-picker
    v-model="dateRange"
    range
    type="date"
    placeholder="选择日期范围"
  />
</template>

<script>
import DatePicker from 'vue2-datepicker';
import 'vue2-datepicker/index.css';

export default {
  components: { DatePicker },
  data() {
    return {
      dateRange: [],
    };
  },
};
</script>

使用 Element-UI 的日期范围选择

如果项目基于 Element-UI,可以直接使用其内置的日期范围组件:

<template>
  <el-date-picker
    v-model="dateRange"
    type="daterange"
    range-separator="至"
    start-placeholder="开始日期"
    end-placeholder="结束日期"
  />
</template>

<script>
export default {
  data() {
    return {
      dateRange: [],
    };
  },
};
</script>

自定义日期范围限制

可以通过 picker-options 限制可选日期范围,例如禁止选择今天之后的日期:

vue实现日期范围选择

<template>
  <el-date-picker
    v-model="dateRange"
    type="daterange"
    :picker-options="pickerOptions"
  />
</template>

<script>
export default {
  data() {
    return {
      dateRange: [],
      pickerOptions: {
        disabledDate(time) {
          return time.getTime() > Date.now();
        },
      },
    };
  },
};
</script>

处理日期范围数据

获取日期范围后,通常需要格式化或提交到后端:

methods: {
  submitRange() {
    const [start, end] = this.dateRange;
    const formattedStart = start.toISOString().split('T')[0];
    const formattedEnd = end.toISOString().split('T')[0];
    console.log('提交范围:', formattedStart, formattedEnd);
  },
},

响应式更新

监听日期范围变化并触发操作:

watch: {
  dateRange(newVal) {
    if (newVal && newVal.length === 2) {
      console.log('日期范围变化:', newVal);
    }
  },
},

注意事项

  • 日期库的时区问题需注意,建议使用 moment.jsday.js 处理格式化。
  • 移动端适配可能需要额外样式调整或使用专用移动端日期组件(如 vant)。
  • 清空日期范围时,v-model 绑定的数组会变为空,需做好边界判断。

标签: 范围日期
分享给朋友:

相关文章

vue实现日期回填

vue实现日期回填

实现日期回填的基本思路 在Vue中实现日期回填通常涉及表单数据的双向绑定,结合日期选择器组件(如Element UI的DatePicker或原生HTML的input type="date")。核心是通…

vue 实现日期多选

vue 实现日期多选

实现日期多选的方法 使用 v-model 绑定数组 在 Vue 中,可以通过 v-model 绑定一个数组来实现多选。日期选择器组件(如 el-date-picker)需设置 type="dates"…

vue如何实现日期递增

vue如何实现日期递增

实现日期递增的方法 在Vue中实现日期递增可以通过JavaScript的Date对象进行操作,结合Vue的响应式特性更新数据。以下是几种常见的实现方式: 使用计算属性 data() { r…

vue实现根据日期排序

vue实现根据日期排序

Vue 实现根据日期排序的方法 在 Vue 中实现日期排序可以通过多种方式完成,以下是几种常见的方法: 使用 JavaScript 的 sort 方法 Vue 的响应式系统可以结合 JavaScr…

vue实现日期选择显示

vue实现日期选择显示

Vue 实现日期选择显示的方法 使用原生 HTML5 input[type="date"] 通过 HTML5 提供的日期输入控件实现基础日期选择功能,适合简单场景。 <template>…

mui vue实现日期插件

mui vue实现日期插件

MUI Vue 实现日期插件 在 Vue 项目中,可以使用 MUI(Material-UI)风格的日期选择器插件。以下是两种常见的实现方式: 使用 Vuetify 的日期选择器 Vuetify 是…