跳转到内容

TimePicker 时间选择器

使用交互式选择器界面选择时间。

import { TimePicker } from 'asterui'

基础时间选择器

默认 24 小时格式的简单时间选择器。

import { TimePicker } from 'asterui'

function App() {
  return (
      <TimePicker placeholder="Select time" />
    )
}

export default App

12 小时格式

带有 12 小时格式和 AM/PM 选择的时间选择器。

import { TimePicker } from 'asterui'

function App() {
  return (
      <TimePicker format="12" placeholder="Select time" />
    )
}

export default App

带秒

包含秒选择的时间选择器。

import { TimePicker } from 'asterui'

function App() {
  return (
      <TimePicker showSeconds placeholder="Select time" />
    )
}

export default App

受控

带有状态管理的受控时间选择器。

Selected: None
import { TimePicker, Space, Typography } from 'asterui'
import { useState } from 'react'

function App() {
  const [time, setTime] = useState<Date | null>(null)
  
  return (
      <Space direction="vertical">
        <TimePicker value={time} onChange={setTime} />
        <Typography.Text size="sm" muted>
          Selected: {time ? time.toLocaleTimeString() : 'None'}
        </Typography.Text>
      </Space>
    )
}

export default App

不同尺寸

各种尺寸的时间选择器。

import { TimePicker, Space } from 'asterui'

function App() {
  return (
      <Space direction="vertical">
        <TimePicker size="xs" placeholder="Extra small" />
        <TimePicker size="sm" placeholder="Small" />
        <TimePicker size="md" placeholder="Medium" />
        <TimePicker size="lg" placeholder="Large" />
      </Space>
    )
}

export default App

禁用

带有默认值的禁用时间选择器。

import { TimePicker } from 'asterui'

function App() {
  return (
      <TimePicker disabled defaultValue={new Date()} />
    )
}

export default App

时间步长

带有自定义间隔的时间选择器(15 分钟步长)。

import { TimePicker } from 'asterui'

function App() {
  return (
      <TimePicker minuteStep={15} placeholder="Select time (15 min intervals)" />
    )
}

export default App

在表单中

使用 Row/Col 布局与 Form 组件集成的 TimePicker。

 

 

import { TimePicker, Form, Button, Row, Col, notification } from 'asterui'

function App() {
  const handleSubmit = (values: Record<string, unknown>) => {
    const startTime = values.startTime as Date | null
    const endTime = values.endTime as Date | null
    notification.success({
      message: 'Form Submitted',
      description: `Start: ${startTime?.toLocaleTimeString() || 'Not set'}, End: ${endTime?.toLocaleTimeString() || 'Not set'}`,
    })
  }
  
  return (
      <Form onFinish={handleSubmit}>
        <Row gutter={16}>
          <Col span={12}>
            <Form.Item name="startTime" label="Start Time" rules={{ required: 'Please select start time' }}>
              <TimePicker placeholder="Start" />
            </Form.Item>
          </Col>
          <Col span={12}>
            <Form.Item name="endTime" label="End Time">
              <TimePicker placeholder="End" />
            </Form.Item>
          </Col>
        </Row>
        <Form.Item>
          <Button htmlType="submit" color="primary">
            Submit
          </Button>
        </Form.Item>
      </Form>
    )
}

export default App
属性描述类型默认值
value受控选定时间Date | null-
defaultValue默认选定时间(非受控)Date | null-
onChange选择时间时的回调(date: Date | null) => void-
format时间显示格式(12 小时或 24 小时)'12' | '24''24'
placeholder输入占位符文本string"Select time"
disabled禁用时间选择器booleanfalse
size输入大小'xs' | 'sm' | 'md' | 'lg''md'
showSeconds在时间选择器中显示秒列booleanfalse
allowClear选择时间时显示清除按钮booleantrue
open下拉菜单的受控打开状态boolean-
onOpenChange下拉菜单打开状态更改时的回调(open: boolean) => void-
hourStep选择器中小时之间的间隔number1
minuteStep选择器中分钟之间的间隔number1
secondStep选择器中秒之间的间隔number1
status验证状态'error' | 'warning'-
data-testid子元素的测试 ID 前缀string"timepicker"
className额外的 CSS 类string-
  • 输入字段具有 aria-haspopuparia-expanded 属性
  • 下拉菜单使用带有正确标签的 role="dialog"
  • 时间列使用带有 aria-labelrole="listbox"
  • 时间选项使用带有 aria-selectedrole="option"
  • 完整的键盘导航: 箭头键导航,Escape 关闭,Enter 确认
  • 清除按钮具有 aria-label 以供屏幕阅读器使用
  • 禁用状态正确传达给辅助技术