element ui 日期选择器 默认展示最近一个月的时间不能选择未来时间

最近用到element ui的日期选择器,把实现过程记录一下。(vue项目)
首先说下我的需求:
1、默认展示最近一个月的时间
2、不可以选择未来时间 效果如下
实现效果

                       <template>
                            <div class="block">
                                <el-date-picker
                                        v-model="columnDateValue"
                                        type="daterange"
                                        format="yyyy-MM-dd"
                                        value-format="yyyy-MM-dd"
                                        range-separator="~"
                                        :default-value="Date.now() - 30 * 24 * 3600 * 1000"
                                        :picker-options="pickerOptions"
                                        start-placeholder="开始日期"
                                        end-placeholder="结束日期"
                                        @change="changeDate"
                                >
                                </el-date-picker>
                            </div>
                        </template>

以上做个解释
format="yyyy-MM-dd"和 value-format=“yyyy-MM-dd” 要写上 要规定好日期格式
:picker-options=“pickerOptions” 是为了不让选择今天之后的日期 对应的函数在data里
:default-value="Date.now() - 30 * 24 * 3600 * 1000"是为了让它默认不展示下一个月的日历
下图左图是没有加 :default-value之前的(当天是1月10号,展示1月和2月的日历) 右图是加了之后的

在这里插入图片描述

export default {
        data() {
            return {
                columnDateValue: [], // 因为我默认展示的是时间区间 所以定义一个数组
                pickerOptions: {
                    disabledDate(time) {
                        return time.getTime() > Date.now();
                    }
                }
            }
        },
        methods: {
        //changeDate 函数 是我绑定的change事件 用来执行获取数据api的函数的
            changeDate() {
                this.getApiBar('yvjing', 1)
            },
            //格式化时间 返回年月日 
            getDate(time) {
                   if (time) {
                     let val = new Date(time);
                     let Y = val.getFullYear();
                     let M = (val.getMonth() + 1) < 10 ? '0' + (val.getMonth() + 1) : (val.getMonth() + 1);
                     let D = val.getDate() < 10 ? '0' + val.getDate() : val.getDate();
                     let h = val.getHours() < 10 ? '0' + val.getHours() : val.getHours();
                     let m = val.getMinutes() < 10 ? '0' + val.getMinutes() : val.getMinutes();
                     return Y + '-' + M + '-' + D;
              }
            return ''
           }

        },
        mounted() {
            let nowTimes = Date.now();
            let oldTimes = nowTimes - (86400000 * 30);
            let oldDate = this.getDate(oldTimes); //一个月前的时间
            let nowDate = this.getDate(nowTimes);//今天的时间
            this.columnDateValue = [oldDate, nowDate];
        }
    }
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值