TimePicker 时间选择框

输入或选择时间的控件。

何时使用

当用户需要输入一个时间,可以点击标准输入框,弹出时间面板进行选择。

代码演示

TimePicker时间选择框 - 图1

12 小时制

12 小时制的时间选择器,默认的 format 为 h:mm:ss a

  1. <template>
  2. <div>
  3. <a-time-picker use12Hours @change="onChange" />
  4. <a-time-picker use12Hours format="h:mm:ss A" @change="onChange" />
  5. <a-time-picker use12Hours format="h:mm a" @change="onChange" />
  6. </div>
  7. </template>
  8. <script>
  9. export default {
  10. methods: {
  11. onChange(time, timeString){
  12. console.log(time, timeString);
  13. }
  14. },
  15. }
  16. </script>

TimePicker时间选择框 - 图2

附加内容

在 TimePicker 选择框底部显示自定义的内容。

  1. <template>
  2. <div>
  3. <a-time-picker @openChange="handleOpenChange" :open="open">
  4. <a-button slot="addon" slot-scope="panel" size="small" type="primary" @click="handleClose">Ok {{panel.prefixCls}}</a-button>
  5. </a-time-picker>
  6. <a-time-picker :open.sync="open2">
  7. <a-button slot="addon" size="small" type="primary" @click="handleClose">Ok</a-button>
  8. </a-time-picker>
  9. </div>
  10. </template>
  11. <script>
  12. import moment from 'moment';
  13. export default {
  14. data() {
  15. return {
  16. open: false,
  17. open2: false,
  18. }
  19. },
  20. methods: {
  21. handleOpenChange(open){
  22. console.log('open', open);
  23. this.open = open
  24. },
  25. handleClose(){
  26. this.open = false
  27. this.open2 = false
  28. },
  29. },
  30. }
  31. </script>

TimePicker时间选择框 - 图3

基本

点击 TimePicker,然后可以在浮层中选择或者输入某一时间。

  1. <template>
  2. <a-time-picker @change="onChange" :defaultOpenValue="moment('00:00:00', 'HH:mm:ss')" />
  3. </template>
  4. <script>
  5. import moment from 'moment';
  6. export default {
  7. methods: {
  8. moment,
  9. onChange(time, timeString){
  10. console.log(time, timeString);
  11. }
  12. },
  13. }
  14. </script>

TimePicker时间选择框 - 图4

禁用

禁用时间选择。

  1. <template>
  2. <a-time-picker :defaultValue="moment('12:08:23', 'HH:mm:ss')" disabled />
  3. </template>
  4. <script>
  5. import moment from 'moment';
  6. export default {
  7. methods: {
  8. moment,
  9. }
  10. }
  11. </script>

TimePicker时间选择框 - 图5

选择时分

TimePicker 浮层中的列会随着 format 变化,当略去 format 中的某部分时,浮层中对应的列也会消失。

  1. <template>
  2. <a-time-picker :defaultValue="moment('12:08', 'HH:mm')" format="HH:mm" />
  3. </template>
  4. <script>
  5. import moment from 'moment';
  6. export default {
  7. methods: {
  8. moment,
  9. },
  10. }
  11. </script>

TimePicker时间选择框 - 图6

步长选项

可以使用 hourStep minuteStep secondStep 按步长展示可选的时分秒。

  1. <template>
  2. <a-time-picker :minuteStep="15" :secondStep="10" />
  3. </template>

TimePicker时间选择框 - 图7

三种大小

三种大小的输入框,大的用在表单中,中的为默认。

  1. <template>
  2. <div>
  3. <a-time-picker :defaultValue="moment('12:08:23', 'HH:mm:ss')" size="large" />
  4. <a-time-picker :defaultValue="moment('12:08:23', 'HH:mm:ss')" />
  5. <a-time-picker :defaultValue="moment('12:08:23', 'HH:mm:ss')" size="small" />
  6. </div>
  7. </template>
  8. <script>
  9. import moment from 'moment';
  10. export default {
  11. methods: {
  12. moment,
  13. },
  14. }
  15. </script>

TimePicker时间选择框 - 图8

受控组件

value 和 onChange 需要配合使用。也可以直接使用v-model。

  1. <template>
  2. <div>
  3. <p>use value and @change</p>
  4. <a-time-picker @change="onChange" :value="value" />
  5. <br/>
  6. <br/>
  7. <p>v-model</p>
  8. <a-time-picker v-model="value" />
  9. <br/>
  10. <br/>
  11. <p>Do not change</p>
  12. <a-time-picker :value="value2" />
  13. </div>
  14. </template>
  15. <script>
  16. import moment from 'moment';
  17. export default {
  18. data(){
  19. return {
  20. value: null,
  21. value2: moment(),
  22. }
  23. },
  24. methods: {
  25. onChange(time,){
  26. console.log(time);
  27. this.value = time;
  28. }
  29. },
  30. }
  31. </script>

TimePicker时间选择框 - 图9

后缀图标

点击 TimePicker,然后可以在浮层中选择或者输入某一时间。

  1. <template>
  2. <a-time-picker @change="onChange" :defaultOpenValue="moment('00:00:00', 'HH:mm:ss')">
  3. <a-icon type="smile" slot="suffixIcon"/>
  4. </a-time-picker>
  5. </template>
  6. <script>
  7. import moment from 'moment';
  8. export default {
  9. methods: {
  10. moment,
  11. onChange(time, timeString){
  12. console.log(time, timeString);
  13. }
  14. },
  15. }
  16. </script>

API

参数说明类型默认值
addon选择框底部显示自定义的内容slot | slot-scope
allowEmpty是否展示清除按钮booleantrue
autoFocus自动获取焦点booleanfalse
clearText清除按钮的提示文案stringclear
defaultOpenValue当 defaultValue/value 不存在时,可以设置面板打开时默认选中的值momentmoment()
defaultValue默认时间moment
disabled禁用全部操作booleanfalse
disabledHours禁止选择部分小时选项function()
disabledMinutes禁止选择部分分钟选项function(selectedHour)
disabledSeconds禁止选择部分秒选项function(selectedHour, selectedMinute)
format展示的时间格式string"HH:mm:ss"
getPopupContainer定义浮层的容器,默认为 body 上新建 divfunction(trigger)
hideDisabledOptions隐藏禁止选择的选项booleanfalse
hourStep小时选项间隔number1
inputReadOnly设置输入框为只读(避免在移动设备上打开虚拟键盘)booleanfalse
minuteStep分钟选项间隔number1
open(.sync)面板是否打开booleanfalse
placeholder没有值的时候显示的内容string"请选择时间"
popupClassName弹出层类名string''
secondStep秒选项间隔number1
suffixIcon自定义的选择框后缀图标string | VNode | slot-
use12Hours使用 12 小时制,为 true 时 format 默认为 h:mm:ss abooleanfalse
value(v-model)当前时间moment

事件

事件名称说明回调参数
change时间发生变化的回调function(time: moment, timeString: string): void
openChange面板打开/关闭时的回调(open: boolean): void

方法

名称描述
blur()移除焦点
focus()获取焦点