English
Date formatting component.
Using components in template
<!-- General usage -->
<uni-dateformat date="2020/10/20 20:20:20"></uni-dateformat>
<!-- don't show just/immediately/xx minutes ago -->
<uni-dateformat date="2020/10/20 20:20:20" :threshold="[0,0]"></uni-dateformat>
property name | type | default value | description |
---|---|---|---|
date | Object|String|Number | Date.now() | Date object/datestring/timestamp to format |
threshold | Array | [0, 0] | Transformation type threshold |
format | String | 'yyyy/MM/dd hh:mm:ss' | format string |
locale | String | zh | The language used for formatting, currently supports zh (Chinese), en (English) |
The formatting component will perform user-friendly conversion of time, and the threshold is used to control the time threshold for conversion.
Take [60000, 3600000]
as an example, record the absolute value of the difference between the incoming time and the current time as delta (unit: milliseconds)
delta < 60000
, the time will be converted to "just | right now"delta >= 60000 && delta < 3600000
, the time will be converted to "xx minutes ago | xx minutes later", if it exceeds 1 hour, it will be displayed as "xx hours ago | xx hours later", and so ondelta >= 3600000
, it will be formatted according to the format passed in the format parameterIf you don't want to convert it to "right now | just now", you can pass in :threshold = "[0,3600000]"
. The default value of [0,0]
does not translate to either "right now|just now" nor "xx minutes ago|xx minutes later"
format accepts characters and their meanings are as follows:
character | description |
---|---|
yyyy | Four-digit year |
yy | Two Years |
MM | Two-digit month (with less than two digits, add 0 in front) |
M | month, do not automatically fill 0 |
dd | Two days (if there are less than two digits, add 0 in front) |
d | days, do not automatically fill 0 |
hh | Two hours (for less than two digits, add 0 in front) |
h | hour, not automatically filled with 0 |
mm | Two minutes (for less than two digits, add 0 in front) |
m | minutes, do not automatically fill 0 |
ss | Two seconds (for less than two digits, add 0 in front) |
s | Seconds, do not automatically fill 0 |
SSS | Three milliseconds (if less than three, add 0 in front) |
S | milliseconds, not automatically filled with 0 |
attention
The example relies on multiple components such as uni-card
uni-section
uni-scss
, copying the example code directly will not work properly.
Please go to the Component download page , select Import sample project using HBuilderX
on the right side of the page to experience the complete component example.
Template
Script
Style
<template>
<view>
<uni-card :is-shadow="false" is-full>
<text class="uni-h6">日期格式化组件,通常用于需要展示友好的日期格式的场景。</text>
</uni-card>
<uni-section title="基础用法" type="line" padding>
<view class="example-body">
<uni-dateformat :date="now - 7200000"></uni-dateformat>
<uni-dateformat date="2020/12/12"></uni-dateformat>
</view>
</uni-section>
<uni-section title="设置阈值" subTitle="阈值用于控制什么时候显示刚刚|马上,什么时候显示xx分钟前|xx分钟后" type="line" padding>
<view class="example-body">
<uni-dateformat :date="now - 30000" :threshold="[0,3600000]"></uni-dateformat>
<uni-dateformat :date="now - 30000" :threshold="[0,0]"></uni-dateformat>
</view>
</uni-section>
<uni-section title="使用英文" type="line" padding>
<view class="example-body">
<uni-dateformat :date="now - 1200000" :threshold="[60000,3600000]" locale="en"></uni-dateformat>
<uni-dateformat :date="now - 30000" :threshold="[60000,3600000]" locale="en"></uni-dateformat>
<uni-dateformat :date="now - 80000" :threshold="[60000,3600000]" locale="en"></uni-dateformat>
</view>
</uni-section>
</view>
</template>