Vue + Ts + element +moment.js日期范围选择

一、安装moment.js

npm i moment -D

二、引入

import moment from 'moment'

三、用法

<template>
<el-form>
	<el-form-item label="授权有效期" prop="" >
	   <el-date-picker
	      v-model="date"
	      :picker-options="pickDateOptions"
	      :default-time="['12:00:00']"
	      end-placeholder="结束日期"
	      format="yyyy-MM-dd HH:mm:ss"
	      start-placeholder="开始日期"
	      type="datetimerange"
	      value-format="yyyy-MM-dd HH:mm:ss"
	    />
	</el-form-item>
</el-form>
</template>
<script lang="ts">
import {Vue,Component, Watch} from "vue-property-decorator";
import moment from 'moment';

@Component
export default class extends Vue{
    private title = "";
    private date = []; //用于日期选择绑定v-model;
    private formData = {
        start_time: "",
        end_time: "2021-4-18 12:10:10"
    };

    // disabledDate element自带日期potion 参数time:当前组件显示所有日期。
    // disabledDate()会遍历所有time,判断是否符合条件,返回true or false是否显示禁用
    private get pickDateOptions() {
        let self = this;
        return {
            disabledDate(time) {
            	//用moment获取当前日期时间
                const dateNow = moment().locale('zh-cn').subtract('1','day').format('YYYY-MM-DD')
                return !(moment(time.getTime()).isBetween(dateNow, self.formData.end_time));
            }
        }
    }

    @Watch("date", {immediate: false})
    private onDateChanged(value: Array<string>) {
        if (!_.isEmpty(value)) {
            this.formData.start_time = value[0];
            this.formData.end_time = value[1];
        } else {
            this.formData.start_time = "";
            this.formData.end_time = "";
        }
    }

            }
        });
    }
}
</script>

四、效果展示

日期

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值