Skip to content

时间选择器 TimePicker

选择时间的控件。

悄悄告诉你,DatePicker、TimePicker、DateTimePicker 里面很可能是很可能是同一个组件。

基础使用

传入 modelValue 进入受控模式。不传或者为 undefined 则为非受控模式,此时可以传入 defaultValue 属性作为默认值。

隐藏源代码

范围选择

隐藏源代码

快速跳转

隐藏源代码

自定义分隔符

TO
隐藏源代码

自定义格式化

通过 template 设置格式化模板。除此以外,还可以通过 formatparse 设置格式化和转化函数。当时间字符串解析失败时,组件将会保持输入之前的值。

隐藏源代码

更多配置

TimePicker 还拥有 Input 组件的大部分功能。

Disabled, Readonly, Loading & Clearable

Shape

Size

Slot

prefix
suffix

Composite

Start:

Status

Expose

隐藏源代码

Formatter

组件支持基于正则表达式匹配的时间格式化模板,可通过下列模板字符解析时间字符串中的各个部分。

模板匹配规则说明
YYYY(-?\d{4,6})年份,支持 4 至 6 位数字,可包含负号(如公元前)
YY(\d{2})年份的后两位数字
MM(\d{2})月份,两位数字(01-12)
DD(\d{2})日期,两位数字(01-31)
HH(\d{2})小时(24小时制),两位数字(00-23)
hh(\d{2})小时(12小时制),两位数字(01-12)
mm(\d{2})分钟,两位数字(00-59)
ss(\d{2})秒钟,两位数字(00-59)
SSS(\d{3})毫秒,三位数字(000-999)
A(AM|PM)上下午标记,大写 AM 或 PM
ww(\d{2})周数,一年中的第几周,两位数字(01-53,遵循 ISO 周历规则)
Q(\d{1})季度,一位数字(1-4)

[] 中括号中的文本会被提取出来原样保留,例如 YYYY-[Q]Q 可以生成 2026-Q1,中括号中的 Q 被原样保留。

周的计算方式遵循 ISO 8601 标准,一周的开始是周一,每年的第一周是包含该年第一个周四的那一周。

API

TimePickerProps

属性类型可选默认值描述版本
modelValueDate | Date[] | null时间选择器的值(受控模式),支持 v-model0.2.0
defaultValueDate | Date[] | null时间选择器的默认值(非受控模式)。0.2.0
mode'time' | 'time-range''time'时间选择的模式。0.2.0
use12Hoursbooleanfalse0.2.0
placeholderstring占位符文本。0.2.0
placeholderStartstring开始时间的占位符文本。0.2.0
placeholderEndstring结束时间的占位符文本。0.2.0
disabledbooleanfalse是否禁用。0.2.0
readonlybooleanfalse是否只读。0.2.0
clearablebooleanfalse是否显示清除按钮。0.2.0
loadingbooleanfalse是否显示加载状态。0.2.0
templatestring日期格式化模板。0.2.0
format(time: Date) => string日期格式化函数,优先于 template0.2.0
parse(timeString: string) => Date转化格式化字符串到时间的函数,优先于 template0.2.0
size'medium' | 'large' | 'small''medium'时间选择器输入框尺寸。0.2.0
shape'rect' | 'round''rect'时间选择器输入框形状。0.2.0
borderRadiusNumberOrPercentage | NumberOrPercentage[]圆角半径,优先级高于 shape,与 CSS border-radius 行为一致;单值或长度为 1 的数组 → 四角同时生效;长度为 2 的数组 → [左上 & 右下, 右上 & 左下];长度为 3 的数组 → [左上, 右上 & 左下, 右下];长度为 4 的数组 → 按顺时针顺序依次作用于四角。0.2.0
status'success' | 'warning' | 'error' | 'normal'表单验证状态。0.2.0
autofocusbooleanfalse原生 <input>autofocus 属性。0.2.0
autofocusStartbooleanfalse开始日期的原生 <input>autofocus 属性。0.2.0
autofocusEndbooleanfalse结束日期的原生 <input>autofocus 属性。0.2.0
dropdownDestroyOnHidebooleanfalse下拉选择面板是否会在隐藏时销毁。0.2.0
pollSizeChangebooleanfalse开启轮询组件尺寸变化,可能会影响性能。0.2.0
dropdownPropsOmit<PopoverProps, 'visible' | 'content'> & EmitEvent<PopoverEvents>下拉选择面板的属性。0.2.0
needDropdownbooleanfalse是否需要展示下拉选择面板。0.2.0
quickAccessQuickAccessOption[]快速跳转按钮的选项。0.2.0

TimePickerEvents

事件参数描述版本
inputvalue: string, event: Event时间选择器输入时的回调。0.2.0
update:modelValuevalue: Date | Date[] | null更新 modelValue 的回调。0.2.0
changevalue: Date | Date[] | null, event?: Event时间选择器值变化时的回调。0.2.0
clearvalue: Date | Date[] | null点击清除文本按钮,清除内容时的回调。0.2.0
blurevent: FocusEvent时间选择器失焦时的回调。0.2.0
focusevent: FocusEvent时间选择器聚焦时的回调。0.2.0
selectvalue: Date | Date[], event: Event通过下拉面板修改时间选择器值时的回调。0.2.0
dropdownOpen下拉面板展示的回调。0.2.0
dropdownClose下拉面板关闭的回调。0.2.0

TimePickerSlots

插槽参数描述版本
prefix前缀内容。0.2.0
suffix后缀内容。0.2.0
splitter范围选择时,分隔符的内容。0.2.0
quickquickAccess: QuickAccessOption下拉面板的底部插槽。0.2.0

TimePickerExpose

属性类型可选默认值描述版本
focus(placement?: 'start' | 'end') => void聚焦当前控件,范围选择时不传 placement 默认作用于开始时间。0.2.0
blur(placement?: 'start' | 'end') => void取消聚焦当前控件,范围选择时不传 placement 默认作用于开始时间。0.2.0
clear() => void清空当前输入内容。0.2.0
select(placement?: 'start' | 'end') => void选中当前输入内容,范围选择时不传 placement 默认作用于开始时间。0.2.0

QuickAccessOption

ts
export type QuickAccessOption = {
	label: string
	key?: string | number | symbol
	targetTime: Date | Date[] | (() => Date | Date[])
	buttonProps?: ButtonProps
}

NumberOrPercentage

ts
export type NumberOrPercentage = number | `${number}%`

RestAttrs

ts
import type { StyleValue } from 'vue'

export type VueClassValue = string | Record<string, any> | VueClassValue[]
export type VueStyleValue = StyleValue

export type RestAttrs = {
	style?: VueStyleValue | null
	class?: VueClassValue | null
	[x: string]: any
}