更新记录

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:mm
  • m:不补零月份;当出现在冒号后时表示不补零分钟
  • 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]
}

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。