uniapp实现picker时间选择器设置时间间隔

uniapp实现picker时间选择器设置时间间隔

使用官方组件picker实现选择时间时设置不了分钟的间隔,通过picker-view自定义一个可以设置时间间隔,开始时间,结束时间的选择器组件
在这里插入图片描述

1. 创建一个组件名为pickerTime的组件

在这里插入图片描述

2. pickerTime的组件内容为:

<template>
	<view class="backSel-model">   //弹窗背景
		<view class="picker-bottom">
			<view class="flex">
				<view class="btn-picker" style="color: #999" @click="close">取消</view>
				<view class="btn-picker confirm" @click="chooseTime">确认</view>
			</view>
			//此处的value为初始化的小时和分钟
			<picker-view @change="pickerChange" :value="[startH,0]" style="height: 80%;width: 100%;">
				<picker-view-column>
				//小时
					<view class="item-picker" v-for="(item,index) in hours" :key="index">{{item}}时</view>
				</picker-view-column>
				<picker-view-column>
					//分钟
					<view class="item-picker" v-for="(item2,index) in minutes" :key="index">{{item2}}分</view>
				</picker-view-column>
			</picker-view>
		</view>
	</view>
</template>
export default {
		name: "pickerTime",
		props: {
			step: {				//分钟间隔
				type: Number,
				value: 1
			},
			startH: {			//可选择的开始时间(小时)
				type: Number,
				value: 7
			},
			lateH: {			//可选择的结束时间(小时)
				type: Number,
				value: 21
			}
		},
		data() {
			return {
				hours: [], // 存储小时的数据
				minutes: [],
				selectedHour: '',    //选中时
				selectedMinute: '00'	//选中分
			};
		},
		created() {  
			//小时数组,从开始时间开始,到结束时间截止
			for (let i = this.startH; i < this.lateH; i++) {
				this.hours.push(i.toString().padStart(2, "0"));
			}
			//分钟数组,时间间隔,padStart()用于头部补全,第一个参数用来指定字符串的最小长度,第二个参数是用来补全字符串
			for (let i = 0; i < 60; i += this.step) {
				this.minutes.push(i.toString().padStart(2, "0"));
			}
		},
		methods: {
			pickerChange(e) {
				// 当用户选择时间时触发该方法
				const val = e.mp.detail.value;
				this.selectedHour = this.hours[val[0]];
				this.selectedMinute = this.minutes[val[1]];
			},
			//确认按钮
			chooseTime() {
				//判断是否是进入change方法,没有进入时初始值若格式单一,将格式统一
				if (!this.selectedHour) {
					this.selectedHour = this.startH<10?'0'+this.startH:this.startH
				}
				this.$emit('chooseTime', {
					time: this.selectedHour + ':' + this.selectedMinute
				})
			},
			//取消按钮
			close() {
				this.$emit('close')
			}
		}
	}
//css内容
.flex {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}

	.btn-picker {
		line-height: 60rpx;
		width: 100rpx;
		height: 60rpx;
	}

	.confirm {
		color: #00B642;
		font-weight: bold;
	}

	.backSel-model {
		position: fixed;
		top: 0;
		right: 0;
		left: 0;
		bottom: 0;
		z-index: 100;
		background: rgba(0, 0, 0, .55);
	}

	.picker-bottom {
		position: absolute;
		bottom: 0;
		left: 0;
		right: 0;
		height: 500rpx;
		background: #fff;
		padding: 20rpx;
	}

	.item-picker {
		line-height: 70rpx;
		text-align: center;
	}

3. 引入页面内使用

1.在script中引入组件

import pickerTime from "@/components/pickerTime.vue"

2.在components中引入

components: {pickerTime}

3.在页面内引用组件

<view @click="showTime = true"><text v-if="goTime" style="color: #000;">{{goTime }}</text><text v-else>请选择返程时间</text></view>
//通过控制showTime来判断组件是否显示
<pickerTime :startH="7" :lateH="19" :step="5" v-if="showTime" @close="showTime=false" @chooseTime="bindTime"></pickerTime>

4.在方法中调用成功方法获取数据并赋值

	chooseTime(val){
		//隐藏时间选择器组件
		this.showTime=false;
		this.goTime =val.time;
	}

一个简单的时间组件就完成啦

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Uniapp Picker时间选择器是一种可以在Uniapp平台上使用的时间选择器组件,可以方便地让用户选择日期和时间。它可以根据需要进行定制,包括选择器的样式、显示的日期和时间格式等。同时,它还支持多种语言,可以满足不同地区用户的需求。 ### 回答2: UniApp picker时间选择器UniApp提供的一种用于选择时间的组件。它可以在移动端网页、微信小程序、支付宝小程序等环境下使用,提供了简洁易用的时间选择交互界面,方便用户快速选择需要的时间。 使用UniApp picker时间选择器,可以轻松地实现时间选择器的功能,支持选择年、月、日、小时、分钟等时间细节,还可以根据需要设置最小时间和最大时间的范围,以及选择器的显示方式,例如日期时间选择器时间选择器等。 UniApp picker时间选择器的使用非常简单,只需在页面中引入组件,在需要显示时间选择器的地方添加一个按钮或输入框,触发时间选择器的显示即可。在用户选择时间后,可以通过组件提供的事件接口获取用户选择的时间值,然后将该值传递给后台系统或进行其他处理。 总之,UniApp picker时间选择器是一款非常实用的组件,不仅方便用户在移动端进行时间选择,同时也为开发者提供了简单易用的时间选择器开发工具,可以大大简化开发难度和提高开发效率。 ### 回答3: Uniapp picker时间选择器Uniapp提供的一种时间选择器组件,可以方便地实现时间的选择功能。该组件支持年、月、日、时、分、秒等多种时间格式的选择,还可以在选择器中自定义选项内容以及相应的显示格式。 使用Uniapp picker时间选择器非常简单。首先在页面中引入该组件,然后定义一个时间类型的变量作为选择器的初始值。在模板中,使用picker组件并设置属性mode为time,即可实现一个简单的时间选择器。此外,还可以利用slot来自定义时间选择器的界面风格和布局。 Uniapp picker时间选择器具有很好的灵活性和可扩展性。它可以方便地与其他组件和插件进行结合使用,实现更加复杂的时间选择逻辑和交互效果。同时,该组件使用简单,易于上手,不需要过多的编码经验和技巧,即可轻松实现时间选择功能。 总的来说,Uniapp picker时间选择器是一款功能强大、使用方便的时间选择组件,为开发者提供了一种快速、简单地实现时间选择功能的方式。无论是在移动端还是Web端开发中,Uniapp picker时间选择器都是一款值得推荐的组件库。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值