yields-ago
是一个可以生成友好时间戳的 npm 包。它可以将日期转换成人类易读的时间格式,如 "3 minutes ago" 或 "2 days ago"。
在前端项目中,我们通常需要将数据库中的时间戳转换成人类易读的时间格式。使用 yields-ago
可以非常方便地完成这个任务。
安装
可以通过 npm 安装 yields-ago
:
npm install yields-ago
或者在项目中的 package.json
中添加依赖:
"dependencies": { "yields-ago": "^1.0.0" }
使用方法
在代码中引入 yields-ago
:
import ago from 'yields-ago';
或者通过 CommonJS:
const ago = require('yields-ago').default;
然后,传入一个日期时间戳即可生成友好的时间格式。例如:
console.log(ago(Date.now() - 1000 * 60)); // '1 minute ago' console.log(ago(Date.now() - 1000 * 60 * 60)); // '1 hour ago' console.log(ago(Date.now() - 1000 * 60 * 60 * 24)); // '1 day ago' console.log(ago(Date.now() - 1000 * 60 * 60 * 24 * 2)); // '2 days ago'
你也可以传入 Date
实例:
console.log(ago(new Date(Date.now() - 1000 * 60))); // '1 minute ago'
如果需要精确到秒,可以通过第二个参数传入 true
:
console.log(ago(Date.now() - 1000 * 31, true)); // '31 seconds ago'
自定义选项
yields-ago
还支持自定义选项。可以在第二个参数中传入一个对象,来设置具体的选项。
suffix
bool
值,是否在时间串后边增加"ago"的后缀。
默认为 true
。
console.log(ago(Date.now() - 1000 * 60, { suffix: false })); // '1 minute'
max
表示在多长时间内(单位为毫秒)的时间戳,将不再显示小时、分钟、秒,而是直接显示"X days ago"。
默认为 31536000000
,即一年的毫秒数。
console.log(ago(Date.now() - 1000 * 60 * 60 * 24 * 90, { max: 7776000000 })); // '3 months ago'
rules
一个数组,包含若干个规则。每个规则都是一个对象,包含了一个regexp
和一个replace
属性。这些规则可帮助你自定义时间格式。
console.log(ago(Date.now() - 1000 * 60 * 60 * 24 * 365, { rules: [{ regexp: /(\d+)\s(years|year)/i, replace: '$1y' }, { regexp: /(\d+)\s(months|month)/i, replace: '$1m' }]})); // '1y, 2m ago'
总结
yields-ago
是一个非常方便的 npm 包,能够将日期转换成易读格式。它支持自定义选项,能够满足很多不同的需求。在前端项目中,使用 yields-ago
能够让我们更加高效地完成时间戳转换的工作,提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedac3fb5cbfe1ea06109b0