组件 <NuxtTime> 允许您以对区域设置友好的格式显示日期和时间,并具有正确的 <time> HTML 语义。它确保服务器和客户端之间渲染一致,没有水合不匹配。
您可以在应用的任何位置使用 <NuxtTime> 组件
<template>
<NuxtTime :datetime="Date.now()" />
</template>
datetimeDate | number | stringtrue要显示的时间日期值。您可以提供
Date 对象<template>
<NuxtTime :datetime="Date.now()" />
<NuxtTime :datetime="new Date()" />
<NuxtTime datetime="2023-06-15T09:30:00.000Z" />
</template>
localestringfalse用于格式化的BCP 47 语言标签用于格式化 (例如 'en-US', 'fr-FR', 'ja-JP')
<template>
<NuxtTime
:datetime="Date.now()"
locale="fr-FR"
/>
</template>
该组件接受来自Intl.DateTimeFormatoptions
<template>
<NuxtTime
:datetime="Date.now()"
year="numeric"
month="long"
day="numeric"
hour="2-digit"
minute="2-digit"
/>
</template>
这将输出类似这样的内容: "April 22, 2025, 08:30 AM"
relativebooleanfalsefalse启用使用 Intl.RelativeTimeFormat API 的相对时间格式化
<template>
<!-- Shows something like "5 minutes ago" -->
<NuxtTime
:datetime="Date.now() - 5 * 60 * 1000"
relative
/>
</template>
当 relative 设置为 true 时,该组件也接受来自Intl.RelativeTimeFormat:
style 是一个保留的 prop,因此使用 relativeStyle prop。<template>
<NuxtTime
:datetime="Date.now() - 3 * 24 * 60 * 60 * 1000"
relative
numeric="auto"
relative-style="long"
/>
</template>
这将输出类似这样的内容: "3 days ago" 或 "last Friday",具体取决于 numeric 的设置。
<template>
<NuxtTime :datetime="Date.now()" />
</template>
<template>
<NuxtTime
:datetime="Date.now()"
weekday="long"
year="numeric"
month="short"
day="numeric"
hour="numeric"
minute="numeric"
second="numeric"
time-zone-name="short"
/>
</template>
<template>
<div>
<p>
<NuxtTime
:datetime="Date.now() - 30 * 1000"
relative
/>
<!-- 30 seconds ago -->
</p>
<p>
<NuxtTime
:datetime="Date.now() - 45 * 60 * 1000"
relative
/>
<!-- 45 minutes ago -->
</p>
<p>
<NuxtTime
:datetime="Date.now() + 2 * 24 * 60 * 60 * 1000"
relative
/>
<!-- in 2 days -->
</p>
</div>
</template>
<template>
<div>
<NuxtTime
:datetime="Date.now()"
locale="en-US"
weekday="long"
/>
<NuxtTime
:datetime="Date.now()"
locale="fr-FR"
weekday="long"
/>
<NuxtTime
:datetime="Date.now()"
locale="ja-JP"
weekday="long"
/>
</div>
</template>