更新记录
1.0.4(2025-12-03) 下载此版本
去除时间校验
1.0.3(2025-12-02) 下载此版本
增加双列时间段选择
1.0.2(2025-12-02) 下载此版本
去除时间段中间分割线的空格
查看更多平台兼容性
uni-app(4.72)
| Vue2 | Vue2插件版本 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|---|
| √ | 1.0.0 | - | √ | - | √ | - | - | - | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|
| √ | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.63)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | - | - | - | - |
📅 lfj-time-picker (时间选择器)
🔍 功能简介
lfj-time-picker 是一个基于 UniApp 框架开发的多功能时间选择器组件,支持以下核心功能:
- ✅ 支持自定义时间格式(如
yyyy-mm-dd hh:MM:ss) - ✅ 可按需显示年、月、日、时、分、秒等字段(通过
mode属性配置) - ✅ 支持开始/结束时间区间选择(范围选择)
- ✅ 支持带单位显示(如"年"、"月")
- ✅ 可禁用或启用时间段选择
- ✅ 支持弹窗底部滑出动画,适配安全区域
- ✅ 提供丰富的回调事件与数据绑定
- ✅ 自动处理时间范围限制
- ✅ 支持双列选择时间段选择(年、月、日、时、分、秒各列支持范围选择)
⚠️ 本组件基于官方
uni-popup构建,兼容 H5、小程序、App 多端。
📦 使用方式
1. 基础用法
<template>
<view>
<lfj-time-picker
:show="show"
:title="title"
:format="format"
:start-time="startTime"
:end-time="endTime"
:range="range"
@column="onTimeSelected" />
</view>
</template>
<script>
export default {
data() {
return {
show: false,
title: '选择时间',
format: 'yyyy-mm-dd hh:MM:ss',
startTime: Date.now(),
endTime: Date.now() + 10 * 365 * 24 * 60 * 60 * 1000,
range: true,
};
},
methods: {
onTimeSelected(timeStr) {
console.log('选中的时间:', timeStr);
this.show = false;
},
},
};
</script>
2. 自定义显示字段(mode 属性)
<template>
<view>
<!-- 只显示年月 -->
<lfj-time-picker :show="show1" :mode="['year', 'month']" :format="'yyyy年mm月'" @column="onMonthSelected" />
<!-- 显示时分秒 -->
<lfj-time-picker
:show="show2"
:mode="['hour', 'minute', 'second']"
:format="'hh:MM:ss'"
@column="onTimeSelected" />
</view>
</template>
3. 双列时间段选择(doubleColumn 属性) (仅支持单个 mode 模式)
<template>
<view>
<!-- 双列选择年 -->
<lfj-time-picker
:show="show3"
:range="true"
:mode="['year']"
:double-column="true"
:format="'yyyy年'"
@column="onYearMonthSelected" />
</view>
</template>
📋 Props 说明
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| show | Boolean | false |
是否显示弹窗 |
| title | String | '选择时间' |
弹窗标题 |
| format | String | 'yyyy-mm-dd hh:MM:ss' |
时间格式字符串,示例:yyyy-mm-dd、yyyy年mm月dd日、hh:MM:ss |
| mode | String, Array | 'year,month,day,hour,minute,second' |
控制显示哪些字段,可配值为:year、month、day、hour、minute、second |
| startTime | Number/String | 当前时间戳 | 开始时间(毫秒) |
| endTime | Number/String | 十年后时间戳 | 结束时间(毫秒) |
| withUnit | Boolean | true |
是否在选项后显示单位(如"年"、"月") |
| range | Boolean | true |
是否开启时间段选择模式 |
| doubleColumn | Boolean | false |
是否开启双列选择模式 |
| indicatorStyle | String | 'height: 70px;' |
picker-view 中间指示器样式 |
| height | String | '500rpx' |
弹窗高度 |
📌 事件说明
| 事件名 | 参数 | 说明 |
|---|---|---|
| @column | string |
选择完成后的返回值,格式为 开始时间 - 结束时间 或单独时间 |
| @open | 无 | 弹窗打开时触发 |
| @close | 无 | 弹窗关闭时触发 |
📝 格式说明
组件支持的时间格式标记:
yyyy:年(4 位)mm:月(01-12)dd:日(01-31)hh:时(00-23)MM:分(00-59)ss:秒(00-59)
示例:
yyyy-mm-dd→ 2023-12-01yyyy年mm月dd日 hh时MM分ss秒→ 2023 年 12 月 01 日 14 时 30 分 45 秒mm/dd/yyyy→ 12/01/2023
💡 使用建议
-
时间范围限制:
- 组件会自动限制选择时间在
startTime和endTime范围内 - 若需限制用户只能选择未来时间,请确保
startTime不早于当前时间
- 组件会自动限制选择时间在
-
多字段选择:
- 使用
mode属性控制显示哪些时间字段 - 示例:
mode="['year', 'month']"只显示年月选择
- 使用
-
单位显示:
- 设置
withUnit="false"可隐藏年/月/日等单位
- 设置
-
时间段选择:
- 当
range="true"时,用户需要先选择开始时间,再选择结束时间 - 若未选择开始时间就切换至结束时间,系统会提示"请先选择开始时间"
- 当
🛠️ 开发者提示
- 组件内部通过
computed和watch实现动态时间范围计算,性能良好 setTimeValue方法支持传入任意时间戳或时间字符串,自动适配- 如需扩展更多时间格式,可在
format字段中自由组合上述格式标记 - 组件已处理各平台时间格式兼容性问题
📎 示例项目
请参考项目根目录下的 pages/index/index.vue 文件,其中已包含完整使用示例。

收藏人数:
下载插件并导入HBuilderX
下载示例项目ZIP
赞赏(0)
下载 570
赞赏 4
下载 11818123
赞赏 1818
赞赏
京公网安备:11010802035340号