timeago.js自动将时间戳转换为更易读的时间格式

timeago.js

timeago.js is a simple library (less than 2 kb) that is used to format datetime with *** time ago statement. eg: '3 hours ago'.

  • Localization supported.

  • Time ago and time in supported.

  • Real-time render supported.

  • Nodejs and browserjs supported.

  • Well tested.

Official website. 中文版说明文档点这里。 React version here: timeago-react. Python version here: timeago.

Build Status npm npm npm

Such as

just now
12 seconds ago
3 minutes ago
2 hours ago
3 days ago
3 weeks ago
6 months ago
2 years ago

in 12 seconds
in 3 minutes
in 2 hours
in 24 days
in 6 months
in 2 years

1. Usage

1. Install timeago.js

npm install timeago.js

2. import timeago.js

ES6 style is supported, then get global object: timeago.

import timeago from 'timeago.js';

// or

var timeago = require("timeago.js");

or link with script in html files:

<script src="dist/timeago.min.js"></script>

3. Use class timeago

var timeagoInstance = new timeago();
timeagoInstance.format('2016-06-12');

2. Detailed Usage

1. Localization

Default locale is en, and the library supports en and zh_CN.

var timeagoInstance = new timeago();
timeagoInstance.format('2016-06-12', 'zh_CN');

You can change the locale in the constructor or use the setLocale method;

var timeagoInstance = new timeago('zh_CN');
// or
new timeago().setLocale('zh_CN');

2. Set relative date

timeago is relative to the current date default. You can set it yourself.

var timeagoInstance = new timeago(null, '2016-06-10 12:12:12'); // set the relative date here.
timeagoInstance.format('2016-06-12', 'zh_CN');

3. Use timestamp

new timeago().format(new Date().getTime() - 11 * 1000 * 60 * 60); // will get '11 hours ago'

4. Automatic rendering

HTML code:

<div class="need_to_be_rendered" datetime="2016-06-30 09:20:00"></div>

js code

var timeagoInstance = new timeago();
// use render to render it in real time
timeagoInstance.render(document.querySelectorAll('.need_to_be_rendered'), 'zh_CN');
// or cancel real-time render
timeagoInstance.cancel()

The input API render should be DOM object/array, pure javascript DOM node, and jQuery DOM object supported.

The API cancel will clear all the render timers and release all resources of the instance.

The DOM object should have the attribute datetime or data-timeago with date formated string.

5. Register local language

You can register your own language, this is a class static method. Like below, e.g.

// the local dict example is below.
var test_local_dict = function(number, index) {
  // number: the timeago / timein number;
  // index: the index of array below;
  return [
    ['just now', 'a while'],
    ['%s seconds ago', 'in %s seconds'],
    ['1 minute ago', 'in 1 minute'],
    ['%s minutes ago', 'in %s minutes'],
    ['1 hour ago', 'in 1 hour'],
    ['%s hours ago', 'in %s hours'],
    ['1 day ago', 'in 1 day'],
    ['%s days ago', 'in %s days'],
    ['1 week ago', 'in 1 week'],
    ['%s weeks ago', 'in %s weeks'],
    ['1 month ago', 'in 1 month'],
    ['%s months ago', 'in %s months'],
    ['1 year ago', 'in 1 year'],
    ['%s years ago', 'in %s years']
  ][index];
};
// register your locale with timeago
timeago.register('test_local', test_local_dict);
// use the locale with timeago instance 
var timeagoInstance = new timeago();
timeagoInstance.format('2016-06-12', 'test_local');

You can see locales dir for more locales.

Locale contributions are welcomed, thank you for submitting a GitHub pull request for corrections or additional languages. ^_^~

3. Contributions

  1. The website is based on rmm5t/jquery-timeago which is a nice and featured project but depends on jQuery.

  2. locale translations: The library needs more locale translations. You can:

    • Open an issue to write the locale translations, or submit a pull request. How to ? see en's translation.

    • Please test the locale by exec npm test or node tests/locales_test.js. How to write testcase, see en's test cases.

4. LICENSE

MIT

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值