更新记录

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-ddyyyy年mm月dd日hh:MM:ss
mode String, Array 'year,month,day,hour,minute,second' 控制显示哪些字段,可配值为:yearmonthdayhourminutesecond
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-01
  • yyyy年mm月dd日 hh时MM分ss秒 → 2023 年 12 月 01 日 14 时 30 分 45 秒
  • mm/dd/yyyy → 12/01/2023

💡 使用建议

  1. 时间范围限制

    • 组件会自动限制选择时间在 startTimeendTime 范围内
    • 若需限制用户只能选择未来时间,请确保 startTime 不早于当前时间
  2. 多字段选择

    • 使用 mode 属性控制显示哪些时间字段
    • 示例:mode="['year', 'month']" 只显示年月选择
  3. 单位显示

    • 设置 withUnit="false" 可隐藏年/月/日等单位
  4. 时间段选择

    • range="true" 时,用户需要先选择开始时间,再选择结束时间
    • 若未选择开始时间就切换至结束时间,系统会提示"请先选择开始时间"

🛠️ 开发者提示

  • 组件内部通过 computedwatch 实现动态时间范围计算,性能良好
  • setTimeValue 方法支持传入任意时间戳或时间字符串,自动适配
  • 如需扩展更多时间格式,可在 format 字段中自由组合上述格式标记
  • 组件已处理各平台时间格式兼容性问题

📎 示例项目

请参考项目根目录下的 pages/index/index.vue 文件,其中已包含完整使用示例。

隐私、权限声明

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

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

插件不采集任何数据

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

许可协议

MIT协议

暂无用户评论。