Vue3 elementUI如何修改el-date-picker默认时间

 更新时间:2022年08月15日 17:22:41   作者:成都彭于晏的橙子  
这篇文章主要介绍了Vue3 elementUI如何修改el-date-picker默认时间,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

elementUI修改el-date-picker默认时间

 HTML:

<el-date-picker
   v-model="dateValue"
   type="daterange"
   size="small"
   unlink-panels
   range-separator="至"
   start-placeholder="开始日期"
   end-placeholder="结束日期"
   :shortcuts="shortcuts">
</el-date-picker>

JS:

//放在页面的state中
shortcuts: [
        {
          text: "本周",
          value: () => {
            const end = new Date();
            const start = new Date();
            //周日算第一天,如果周日查询本周的话,天数是0,所有如果是0,默认设置为7,处理当前周
            const nows = start.getDay() || 7; 
            start.setTime(start.getTime() - 3600 * 1000 * 24 * (nows - 1));
            end.setTime(end.getTime() - 3600 * 1000 * 24 * (nows - 7));
            console.log(start, end, "end");
            return [start, end];
          },
        },
        {
          text: "本月",
          value: () => methods.getTime(),
        },
        {
          text: "上月",
          value: () => {
            const oDate = new Date();
            let year = oDate.getFullYear();
            let month = oDate.getMonth();
            let start, end;
            if (month == 0) {
              year--;
              start = new Date(year, 11, 1);
              end = new Date(year, 11, 31);
            } else {
              start = new Date(year, month - 1, 1);
              end = new Date(year, month, 0);
            }
            return [start, end];
          },
        },
      ],

处理本月的函数:

      // 获取本月时间段datePicker使用
      getTime() {
        const oDate = new Date();
        let year = oDate.getFullYear();
        let month = 0//oDate.getMonth();
        let start, end;
        if (month == 0) {
          year--;
          start = new Date(year, 0, 1);
          end = new Date(year, 12, 31);
        } else {
          start = new Date(year, month, 1);
          end = new Date(year, month + 1, 0);
        }
        state.dateValue = [start, end];
        return [start, end];
      },

el-date-picker设置默认时间区间

需求

需要一进页面时,把日期选择器,默认展示为2012-01-01至当前日期-1天

即图:

代码和注释如下

2.1

<el-form-item label="时间周期:" prop="timeCycle" >
      <el-date-picker
         v-model="createForm.timeCycle"
         type="datetimerange" 
         :picker-options="pickerOptions" //快捷时间选择的函数
         range-separator="至"
         start-placeholder="开始日期"
         end-placeholder="结束日期"
         value-format="yyyy-MM-dd" //默认值为这种格式
       >
      </el-date-picker>
</el-form-item>

2.2

由于开始时间是固定的,所以需要在定义数据时定义好,结束时间不能不填,也不能是" ",也不能是不符合时间格式的,否则整个时间选择器都不会展示了

  data(){
     return {
        createForm: {
          timeCycle:["2012-01-01","2012-01-01"]
        }
     }
   }

2.3

在页面一加载时,在created函数里把结束时间算好,然后赋值到定义的timeCycle数组的第二项

created(){
      const end = new Date();//获取当前的日期
      end.setTime(end.getTime() - 3600 * 1000 * 24 )
      //计算,将当期日期-1天
      //此时得到的是中国标准时间,格式不是yyyy-MM-dd,需要用dateFormat这个函数转换下
      this.createForm.timeCycle[1]=this.dateFormat(end)
      //将转换完的正确格式的结束时间赋值到timeCycle数组的第二项
  }

2.4

时间格式的转换函数

中国标准时间,即,例如:Wed Oct 24 2018 20:00:00 GMT+0800

转换为:yyyy-MM-dd格式,即:2018-10-24

 methods:{
   dateFormat(dateData) {
      var date = new Date(dateData)
      var y = date.getFullYear()
      var m = date.getMonth() + 1
      m = m < 10 ? ('0' + m) : m
      var d = date.getDate()
      d = d < 10 ? ('0' + d) : d
      const time = y + '-' + m + '-' + d
      return time
    }
 }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • Vue3使用Vuex之mapState与mapGetters详解

    Vue3使用Vuex之mapState与mapGetters详解

    这篇文章主要为大家介绍了Vue3使用Vuex之mapState与mapGetters详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 详解基于Vue cli开发修改外部组件Vant默认样式

    详解基于Vue cli开发修改外部组件Vant默认样式

    这篇文章主要介绍了详解基于Vue cli开发修改外部组件Vant默认样式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Vue.js项目在apache服务器部署问题解决

    Vue.js项目在apache服务器部署问题解决

    本文主要介绍了Vue.js项目在apache服务器部署问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • vue如何给element-ui中的el-tabs动态设置label属性

    vue如何给element-ui中的el-tabs动态设置label属性

    这篇文章主要介绍了vue如何给element-ui中的el-tabs动态设置label属性,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Vue常见报错以及解决方案实例总结

    Vue常见报错以及解决方案实例总结

    最近做了一个比较老的vue项目,启动居然各种报错,下面这篇文章主要给大家介绍了关于Vue常见报错以及解决方案的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • Vue 子组件更新props中的属性值问题

    Vue 子组件更新props中的属性值问题

    这篇文章主要介绍了Vue 子组件更新props中的属性值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Vue与React的区别和优势对比

    Vue与React的区别和优势对比

    这篇文章主要介绍了Vue与React的区别和优势对比,帮助大家更好的选择适合自己的前端框架,迷茫的同学可以进来参考下
    2020-12-12
  • Vuex 快速入门(简单易懂)

    Vuex 快速入门(简单易懂)

    这篇文章主要介绍了Vuex 快速入门(简单易懂),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • vue父组件异步获取数据传给子组件的方法

    vue父组件异步获取数据传给子组件的方法

    这篇文章主要介绍了vue父组件异步获取数据传给子组件,需要的朋友可以参考下
    2018-07-07
  • vue2中filter()的实现代码

    vue2中filter()的实现代码

    vue2.0里,不再有自带的过滤器,需要自己定义过滤器。下面通过实例代码给大家介绍vue2中filter()的相关知识,感兴趣的朋友一起看看吧
    2017-07-07

最新评论