iview时间控件 动态不可选日期 可选择24小时范围内 时间往后退24小时

演示

在这里插入图片描述

html 设定

  • 起始时间 触发on-change 方法
  • 结束时间 options 动态设置不可选择的日期。
<!-- 起始时间 -->
<FormItem :label="$t('startTime')" prop="startTime">
	<DatePicker
		transfer
		type="datetime"
		:placeholder="$t('pleaseSelect') + $t('startTime')"
		format="yyyy-MM-dd HH:mm:ss"
		:options="$config.datetimeOptions"
		v-model="req.startTime"
		@on-change="changeStartTime"
	></DatePicker>
</FormItem>
<!-- 结束时间 -->
<FormItem :label="$t('endTime')" prop="endTime">
	<DatePicker
		transfer
		type="datetime"
		:placeholder="$t('pleaseSelect') + $t('endTime')"
		format="yyyy-MM-dd HH:mm:ss"
		:options="options2"
		v-model="req.endTime"
	></DatePicker>
</FormItem>

设定options2值

disabledDate(date) 内部的date 是时间戳的形式return 返回的是不想要选的区间范围

注意:

  • toLocaleDateString 获取的是年月日
  • toLocaleString 获取年月日时分秒
  • toLocaleTimeString 获取时分秒
  • new Date(new Date().toLocaleString()).getTime(); 获取时间戳getTime()
  • new Date(new Date(_this.req.startTime.toLocaleString()).getTime() + 24 * 60 * 60 * 1000).getTime()) 开始时间选择的往后推24小时

在这里插入图片描述

computed: {
options2() {
	const _this = this;
	return {
		disabledDate(date) {
			return (
				date &&
				(date.valueOf() < new Date(new Date(_this.req.startTime.toLocaleDateString()).getTime()) ||
					date.valueOf() > new Date(new Date(_this.req.startTime.toLocaleString()).getTime() + 24 * 60 * 60 * 1000).getTime())
			);
		},
	};
},
},

触发changStartTime() 值

  • 结束时间是开始时间的后面24小时
//修改时间
changeStartTime() {
	const { startTime } = this.req;
	this.req.endTime = startTime ? new Date(new Date(startTime.toLocaleString()).getTime() + 24 * 60 * 60 * 1000) : "";
},
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iView 和 element 中,日期选择器的快捷项是可以自定义的。下面分别介绍一下 iView 和 element 中如何进行快捷项的定制。 ## iView 时间控件 iView 中的时间控件是基于 [vue-datepicker](https://www.npmjs.com/package/vue-datepicker) 进行封装的。在 iView 中,可以通过 `picker-options` 属性来进行快捷项的定制。例如,下面的代码会在日期选择器中添加一个“上个月”项: ```html <DatePicker type="daterange" :picker-options="pickerOptions"></DatePicker> ``` ```javascript data() { return { pickerOptions: { shortcuts: [{ text: '上个月', onClick(picker) { const end = new Date(); const start = new Date(); start.setMonth(end.getMonth() - 1); picker.$emit('pick', [start, end]); } }] } } } ``` 其中,`shortcuts` 数组中可以定义多个快捷项。 ## element 中日期选择器 element 中的日期选择器是基于 [vue-datepicker](https://www.npmjs.com/package/vue-datepicker) 进行封装的。在 element 中,可以通过 `shortcuts` 属性来进行快捷项的定制。例如,下面的代码会在日期选择器中添加一个“上个月”项: ```html <el-date-picker v-model="date" type="daterange" :shortcuts="shortcuts"> </el-date-picker> ``` ```javascript data() { return { date: '', shortcuts: [{ text: '上个月', onClick(picker) { const end = new Date(); const start = new Date(); start.setMonth(end.getMonth() - 1); picker.$emit('pick', [start, end]); } }] } } ``` 其中,`shortcuts` 数组中可以定义多个快捷项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值