TimePicker 时间选择器

用于选择或输入日期

任意时间点

可以选择任意时间

提供了两种交互方式:默认情况下通过鼠标滚轮进行选择,打开arrow-control属性则通过界面上的箭头进行选择。

Time Picker 时间选择器 - 图1

  1. <template>
  2. <div class="example-basic">
  3. <el-time-picker v-model="value1" placeholder="Arbitrary time" />
  4. <el-time-picker
  5. v-model="value2"
  6. arrow-control
  7. placeholder="Arbitrary time"
  8. />
  9. </div>
  10. </template>
  11. <script lang="ts" setup>
  12. import { ref } from 'vue'
  13. const value1 = ref()
  14. const value2 = ref()
  15. </script>
  16. <style>
  17. .example-basic .el-date-editor {
  18. margin: 8px;
  19. }
  20. </style>

限制时间选择范围

您也可以限制时间选择范围。

通过 disabledHoursdisabledMinutesdisabledSeconds 限制可选时间范围。,

Time Picker 时间选择器 - 图2

  1. <template>
  2. <div class="example-basic">
  3. <el-time-picker
  4. v-model="value1"
  5. :disabled-hours="disabledHours"
  6. :disabled-minutes="disabledMinutes"
  7. :disabled-seconds="disabledSeconds"
  8. placeholder="Arbitrary time"
  9. />
  10. </div>
  11. </template>
  12. <script lang="ts" setup>
  13. import { ref } from 'vue'
  14. const value1 = ref(new Date(2016, 9, 10, 18, 30))
  15. const makeRange = (start: number, end: number) => {
  16. const result: number[] = []
  17. for (let i = start; i <= end; i++) {
  18. result.push(i)
  19. }
  20. return result
  21. }
  22. const disabledHours = () => {
  23. return makeRange(0, 16).concat(makeRange(19, 23))
  24. }
  25. const disabledMinutes = (hour: number) => {
  26. if (hour === 17) {
  27. return makeRange(0, 29)
  28. }
  29. if (hour === 18) {
  30. return makeRange(31, 59)
  31. }
  32. }
  33. const disabledSeconds = (hour: number, minute: number) => {
  34. if (hour === 18 && minute === 30) {
  35. return makeRange(1, 59)
  36. }
  37. }
  38. </script>
  39. <style>
  40. .example-basic .el-date-editor {
  41. margin: 8px;
  42. }
  43. </style>

任意时间范围

可选择任意的时间范围

添加is-range属性即可选择时间范围。 同样支持 arrow-control 属性。

Time Picker 时间选择器 - 图3

  1. <template>
  2. <div class="demo-range">
  3. <el-time-picker
  4. v-model="value1"
  5. is-range
  6. range-separator="To"
  7. start-placeholder="Start time"
  8. end-placeholder="End time"
  9. />
  10. <el-time-picker
  11. v-model="value2"
  12. is-range
  13. arrow-control
  14. range-separator="To"
  15. start-placeholder="Start time"
  16. end-placeholder="End time"
  17. />
  18. </div>
  19. </template>
  20. <script lang="ts" setup>
  21. import { ref } from 'vue'
  22. const value1 = ref([new Date(2016, 9, 10, 8, 40), new Date(2016, 9, 10, 9, 40)])
  23. const value2 = ref([new Date(2016, 9, 10, 8, 40), new Date(2016, 9, 10, 9, 40)])
  24. </script>
  25. <style>
  26. .demo-range .el-date-editor {
  27. margin: 8px;
  28. }
  29. .demo-range .el-range-separator {
  30. box-sizing: content-box;
  31. }
  32. </style>

TimePicker 属性

属性说明类型可选值默认值
model-value / v-model选中项绑定值Date
readonly完全只读booleanfalse
disabled禁用booleanfalse
editable文本框可输入booleantrue
clearable是否显示清除按钮booleantrue
size输入框尺寸stringlarge / default / small
placeholder非范围选择时的占位内容string
start-placeholder范围选择时开始日期的占位内容string
end-placeholder范围选择时结束日期的占位内容string
is-range是否为时间范围选择booleanfalse
arrow-control是否使用箭头进行时间选择booleanfalse
popper-classTimePicker 下拉框的类名string
range-separator选择范围时的分隔符string‘-‘
format显示在输入框中的格式string请查看 date formatsHH:mm:ss
default-value可选,选择器打开时默认显示的时间Date(TimePicker) / string(TimeSelect)可被new Date()解析(TimePicker) / 可选值(TimeSelect)
id等价于原生 input id 属性string / array(string)字符串 id=”my-time” range 模式 数组 :id=”[‘my-range-start’, ‘my-range-end’]”-
name等价于原生 input name 属性string
prefix-icon自定义前缀图标string | ComponentClock
clear-icon自定义清除图标string | ComponentCircleClose
disabled-hours禁止选择部分小时选项function
disabled-minutes禁止选择部分分钟选项function(selectedHour)
disabled-seconds禁止选择部分秒选项function(selectedHour, selectedMinute)
teleported是否将 popover 的下拉列表镜像至 body 元素booleantrue / falsetrue

TimePicker 事件

事件名说明回调参数
change用户确认选定的值时触发(val: typeof v-model)
blur在组件 Input 失去焦点时触发(e: FocusEvent)
focus在组件 Input 获得焦点时触发(e: FocusEvent)
visible-change当 TimePicker 的下拉列表出现/消失时触发(visibility: boolean)

TimePicker 方法

方法名说明参数
focus使 input 获取焦点
blur使 input 失去焦点
handleOpen打开时间选择器弹窗
handleClose关闭时间选择器弹窗

源代码

组件 Time Picker 时间选择器 - 图4 文档 Time Picker 时间选择器 - 图5

贡献者

Time Picker 时间选择器 - 图6 三咲智子

Time Picker 时间选择器 - 图7 Jeremy

Time Picker 时间选择器 - 图8 msidolphin

Time Picker 时间选择器 - 图9 LIUCHAO

Time Picker 时间选择器 - 图10 zz

Time Picker 时间选择器 - 图11 云游君

Time Picker 时间选择器 - 图12 opengraphica

Time Picker 时间选择器 - 图13 Delyan Haralanov

Time Picker 时间选择器 - 图14 Carter Li

Time Picker 时间选择器 - 图15 Alan Wang

Time Picker 时间选择器 - 图16 RealityBoy

Time Picker 时间选择器 - 图17 Hefty

Time Picker 时间选择器 - 图18 gjfei

Time Picker 时间选择器 - 图19 iamkun

Time Picker 时间选择器 - 图20 Aex

Time Picker 时间选择器 - 图21 João Gonçalves

Time Picker 时间选择器 - 图22 白雾三语

Time Picker 时间选择器 - 图23 blackie

Time Picker 时间选择器 - 图24 Xc

Time Picker 时间选择器 - 图25 류한경

Time Picker 时间选择器 - 图26 renovate[bot]

Time Picker 时间选择器 - 图27 Giwayume

Time Picker 时间选择器 - 图28 bqy_fe

Time Picker 时间选择器 - 图29 lily-elephant

Time Picker 时间选择器 - 图30 Zong

Time Picker 时间选择器 - 图31 weidehai

Time Picker 时间选择器 - 图32 0song

Time Picker 时间选择器 - 图33 kooriookami

Time Picker 时间选择器 - 图34 Herrington Darkholme

Time Picker 时间选择器 - 图35 Hades-li

Time Picker 时间选择器 - 图36 C.Y.Kun

Time Picker 时间选择器 - 图37 Soul

Time Picker 时间选择器 - 图38 Eddie