更新记录
1.0.0(2026-07-20) 下载此版本
1.0.0
- 支持
single单时间模式和range时间段模式 range模式支持开始时间、结束时间两步选择- 开始时间点击“下一步”自动进入结束时间
- 结束时间点击“确定”返回时间段
- 支持自定义主题色,默认蓝色
- 支持自定义返回格式,默认
yyyy-mm-dd hh:mm - 支持跨年日期选择,内部使用真实年份参与格式化和时间戳计算
- 支持点击蒙层关闭开关,默认不关闭
- 结束时间必须大于开始时间;若结束时间小于或等于开始时间,会自动调整到开始时间后的一个分钟步进
平台兼容性
uni-app(5.05)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | √ | - | - | - | - | - | - | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | - | - | - | - | - | - | √ | - | - |
una-picker-plus
una-picker-plus 是一个基于 picker-view 的 uni-app 日期时间选择器组件,支持单时间选择和开始/结束时间段选择。
特性
- 支持
single单时间模式和range时间段模式 range模式支持开始时间、结束时间两步选择- 开始时间点击“下一步”自动进入结束时间
- 结束时间点击“确定”返回时间段
- 支持自定义主题色,默认蓝色
- 支持自定义返回格式,默认
yyyy-mm-dd hh:mm - 支持跨年日期选择,内部使用真实年份参与格式化和时间戳计算
- 支持点击蒙层关闭开关,默认不关闭
- 结束时间必须大于开始时间;若结束时间小于或等于开始时间,会自动调整到开始时间后的一个分钟步进
基础用法
range 时间段模式
<template>
<una-picker-plus mode="range" v-model="range" @confirm="handleRangeConfirm" />
</template>
<script setup>
import { ref } from "vue";
const range = ref({
start: "",
end: ""
});
function handleRangeConfirm(event) {
console.log(event.value.start);
console.log(event.value.end);
console.log(event.startTimestamp);
console.log(event.endTimestamp);
}
</script>
single 单时间模式
<template>
<una-picker-plus mode="single" v-model="time" @confirm="handleSingleConfirm" />
</template>
<script setup>
import { ref } from "vue";
const time = ref("");
function handleSingleConfirm(event) {
console.log(event.value);
console.log(event.timestamp);
}
</script>
自定义主题色
<una-picker-plus themeColor="#A7FF12" />
自定义返回格式
<una-picker-plus format="yyyy/mm/dd hh:mm" />
默认格式为:
yyyy-mm-dd hh:mm
格式说明:
yyyy:四位年份yy:两位年份mm:月份;当出现在冒号后时表示分钟,例如hh:mmm:不补零月份;当出现在冒号后时表示不补零分钟dd:日期d:不补零日期hh:小时h:不补零小时MM:分钟M:不补零分钟
Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| modelValue | 当前值。range 支持 { start, end } 或 [start, end];single 支持时间字符串、时间戳或 Date |
Object / Array / String / Number / Date | {} |
| mode | 选择模式,可选 range / single |
String | range |
| show | 是否显示弹窗 | Boolean | false |
| placeholder | 触发器占位文本 | String | 请选择时间段 |
| startTitle | 开始时间标题 | String | 开始时间 |
| singleTitle | 单时间模式标题 | String | 选择时间 |
| endTitle | 结束时间标题 | String | 结束时间 |
| cancelText | 取消文本 | String | 取消 |
| backText | 返回文本 | String | 返回 |
| nextText | 下一步文本 | String | 下一步 |
| confirmText | 确定文本 | String | 确定 |
| format | 返回格式 | String | yyyy-mm-dd hh:mm |
| separator | 触发器展示分隔符 | String | 至 |
| themeColor | 主题色 | String | #2979ff |
| minDate | 最小可选日期 | String / Number / Date | 当天 00:00 |
| maxDate | 最大可选日期 | String / Number / Date | minDate 后 365 天 |
| defaultStart | 默认开始时间 | String / Number / Date | 当前时间向上取整 |
| defaultEnd | 默认结束时间 | String / Number / Date | 开始时间后一小时 |
| minuteStep | 分钟步进 | Number | 5 |
| closeOnClickOverlay | 点击蒙层是否关闭 | Boolean | false |
| disabled | 是否禁用 | Boolean | false |
Events
| 事件名 | 说明 |
|---|---|
| confirm | 点击确定时触发 |
| change | 滚动选择器时触发 |
| cancel | 点击取消时触发 |
| open | 打开弹窗时触发 |
| close | 关闭弹窗时触发 |
range 模式 confirm 返回示例:
{
value: {
start: "2026-12-31 11:35",
end: "2027-01-01 12:35"
},
start: "2026-12-31 11:35",
end: "2027-01-01 12:35",
startDate: Date,
endDate: Date,
startTimestamp: 1798697700000,
endTimestamp: 1798785300000,
indexes: {
start: [0, 11, 7],
end: [1, 12, 7]
}
}
single 模式 confirm 返回示例:
{
value: "2026-12-31 11:35",
date: Date,
timestamp: 1798697700000,
indexes: [0, 11, 7]
}

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 41
赞赏 1
下载 12441660
赞赏 1934
赞赏
京公网安备:11010802035340号