跳转到内容

时间 time

数据展示组件。三层同源:无头内核给出解剖与状态机,Vue 组件与自定义元素只是它的两层外壳,行为完全一致。

示例

基础用法

渲染成 <time datetime>:文本给人看,datetime 给机器读,两者取自同一个墙钟

呈现方式

date 只到日、datetime 到秒、relative 说成「几分钟前」;datetime 属性的精度跟着走

datedatetimerelative

自定义格式串

记号是 YYYY / YY / MM / M / DD / D / HH / H / mm / m / ss / s,只改看到的文本,datetime 不跟着变

YYYY-MM-DD HH:mm:ss
YYYY 年 M 月 D 日
M/D H:mm
YY.MM.DD

相对时间

刚刚 / n 分钟前 / n 小时前 / n 天前 四档,超过三十天退回绝对日期;locale 只换用词

产物

自定义元素<xh-time>
Vue 组件XhTime
状态机无,connect 直接由 props 算属性
皮肤@xihan-ui/styles/time.css

解剖

部件名即 data-part 属性值,也是皮肤的选择器。加粗的是必备部件,不渲染它组件不工作(Web Components 适配器会在诊断通道上报 wc.missing-part)。

data-scope="time"root

Props

属性类型必填说明
formatstring自定义格式串,记号是 YYYY / YY / MM / M / DD / D / HH / H / mm / m / ss / s。 给了就顶掉该 locale 的缺省格式串;relative 型下只在退回绝对日期时用得上。
localeTimeLocale用词:zh-CN 或 en,缺省 zh-CN。它只换给人看的文本,datetime 恒是同一种写法。
nowTimeValue算相对说法时的参照时刻,缺省取当前时刻。给定后整个组件的产出完全由入参决定。
typeTimeType呈现方式:date 只到日、datetime 到秒、relative 说成「几分钟前」,缺省 datetime。
valueTimeValue要显示的时刻。只写年月日的串按本地零点解读。

connect API

connect 产出的对象。getXxxProps() 铺到对应部件的宿主元素上,其余是可读状态与操作入口。

成员类型说明
dateDate | undefined解析出的时刻;没给或认不出时为 undefined。
textstring给人看的文本;没有可读时刻时是空串。
stampstring | undefined写进 datetime 的那个戳;没有可读时刻时为 undefined,此时根上不写这个属性。
stateTimeState当前状态。
relativeboolean这一次是不是真按相对说法念的。落在四档之外退回了绝对日期时为 false。
getRootProps() => T['element']

键盘

规格出处:W3C APG

无键盘交互(不接收焦点,或焦点行为完全由原生元素提供)。

Released under The MIT License