timeago.js
a tiny / simple library
What ?
timeago.js is a tiny(2kb) library used to format date with `*** time ago`. eg: '3 hours ago'. No dependency. and support automatically updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago"). Download, view the examples, and enjoy.
You opened this page . (This will update automatically. Wait for it.)
Hustcc was born Aug 01, 1989.
Why ?
timeago.js was built to format date with `*** time ago` statement. You can test timeago.js here with the live demo.
- Avoid timestamps dated "1 minute ago" even though the page was opened 10 minutes ago; timeago refreshes automatically.
- You can take full advantage of page caching in your web applications, because the timestamps aren't calculated on the server.
- Very tiny(less than 2kb), and has no dependency, e.g. jQuery.
How ?
First, load and install timeago.js library:
npm install timeago.js
Load timeago.js library file with script tag:
<script src="dist/timeago.js" type="text/javascript"></script>
Or you can use ES6 style:
import timeago from 'timeago.js';
// or
var timeago = require("timeago.js");
Now, let's attach it to your timestamps on DOM ready:
timeago().render(document.querySelectorAll('.need_to_be_rendered'));
// or use jquery selector
timeago().render($('.need_to_be_rendered'));
This will realtime render all selected(javascript DOM selector, or jQuery selector all are supported) elements with a class of need_to_be_rendered.
<span class="need_to_be_rendered" datetime="2016-07-07T09:24:17Z">July 07, 2016</span>
You can also use it programmatically:
timeago().format(new Date()); //=> ""
timeago(null, 'zh_CN').format('2016-09-07') //=> ""
timeago().format(1473245023718); //=> ""
Locales register ?
Yes, timeago.js has locale/i18n/language support. Here are some configuration examples. Please submit a GitHub pull request for corrections or additional languages.
var locale = function(number, index, total_sec) {
// number: the timeago / timein number;
// index: the index of array below;
// total_sec: total seconds between date to be formatted and today's date;
return [
['just now', 'right now'],
['%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];
};
timeago.register('pt_BR', locale);
var timeagoInstance = timeago();
// then you can use it
timeagoInstance.format(1473245023718, 'pt_BR');
Where ?
Package is managed with npm. so npm install timeago.js will be the latest version.
The code is hosted on GitHub: http://github.com/hustcc/timeago.js. Go on, live on the edge.
Who ?
timeago.js was built by Hustcc while standing on the shoulders of giants.
What else ?
Other timeago, welcome to pull a request.
Do you use timeago.js ?
Great! Please let me know, and can add into the README.