Skip to content

Time Field 时间输入

分段输入时、分、秒。默认使用中文、24 小时制和分钟精度,不提供下拉列表。

命令行安装

bash
npx @loongship-kit/ui add time-field

基础用法

––––
预计离港:未填写
查看代码
vue
<script setup lang="ts">
import { Time } from '@internationalized/date'
import { shallowRef } from 'vue'
import { TimeField } from '@/components/loongship/time-field'

const time = shallowRef<Time>()
</script>

<template>
  <TimeField v-model="time" name="departureTime" aria-label="预计离港时间" />
</template>

秒精度与步进

093015
1200
查看代码
vue
<template>
  <div class="vp-demo-showcase-column time-field-demo-control">
    <TimeField v-model="preciseTime" granularity="second" :step="{ second: 15 }" step-snapping />
    <TimeField
      v-model="limitedTime"
      :step="{ minute: 15 }"
      :min-value="new Time(8, 0)"
      :max-value="new Time(18, 0)"
    />
  </div>
</template>

键盘与步进吸附

方向键可调整当前分段,左右键在分段间移动。stepSnapping 会在输入完成后将值吸附到最近的步长。

状态

1200
1200
查看代码
vue
<template>
  <div class="vp-demo-showcase-column time-field-demo-control">
    <TimeField disabled :default-value="limitedTime" />
    <TimeField readonly :default-value="limitedTime" />
  </div>
</template>

时间值不包含时区

Time 表示不带日期和时区的墙上时间。若接口需要时间戳,应由业务先将它与明确的日期、IANA 时区组合,组件不会替业务推断时区,也不会处理秒或毫秒边界。

API

属性

属性类型默认值说明
v-modelTime | null-当前时间;清空时发出 undefined
defaultValueTime-非受控初始时间
defaultPlaceholderTime00:00空值时分段占位基准
localestring'zh-CN'本地化格式
hourCycle12 | 242412 或 24 小时制
granularity'hour' | 'minute' | 'second''minute'最小编辑精度
step{ hour?, minute?, second? }1各分段调整步长
stepSnappingbooleanfalse输入完成后吸附步长
minValueTime-最早有效时间
maxValueTime-最晚有效时间
clearablebooleantrue是否在有值时显示清空按钮
disabledbooleanfalse禁用时间输入
readonlybooleanfalse只读状态
requiredbooleanfalse必填状态
idstring-元素 ID
namestring-表单字段名
clearLabelstring'清空时间'清空按钮可访问名称
classClassValue-根节点自定义类名

事件

事件参数说明
update:modelValuevalue: Time | undefined时间值改变时触发
clear清空时间值时触发

插槽

无内容插槽。