s-ago
v2.2.0
Published
Human readable relative times (eg. 4 minutes ago)
Downloads
109,055
Maintainers
Readme
s-ago
This is the smallest, fully unit tested module to convert Date objects into human readable relative timestamps, such as '4 minutes ago'
, 'yesterday'
, 'tomorrow'
, or 'in 3 months'
. All in 22 lines of TypeScript.
You can optionally specify the maximum unit (eg. hour
, day
, week
) so instead of outputting '2 weeks ago'
you will see '14 days ago'
.
Usage
var ago = require('s-ago');
var now = new Date();
var yesterday = new Date(now.getTime() - (24 * 60 * 60 * 1000));
var hoursAgo = new Date(now.getTime() - (6 * 60 * 60 * 1000));
var yesterday = new Date(now.getTime() - (24 * 60 * 60 * 1000));
var tomorrow = new Date(now.getTime() + (6 * 60 * 60 * 1000));
var inSixHours = new Date(now.getTime() + (6 * 60 * 60 * 1000));
var inTwoWeeks = new Date(now.getTime() + (2 * 7 * 24 * 60 * 60 * 1000));
// present
ago(now); // 'just now'
// past
ago(yesterday); // 'yesterday'
ago(hoursAgo); // '6 hours ago'
// future
ago(inSixHours); // 'in 6 hours'
ago(tomorrow); // 'tomorrow'
// max unit
ago(inTwoWeeks); // 'in 2 weeks'
ago(inTwoWeeks, 'day'); // 'in 14 days'
Output is as follows:
Time | Output | Future output
--- | --- | ---
Less than 1 minute | just now
| just now
1-2 minutes | a minute ago
| in a minute
2-46 minutes | # minutes ago
| in # minutes
46 minutes - 2 hours | an hour ago
| in an hour
2-20 hours | # hours ago
| in # hours
20-48 hours | yesterday
| tomorrow
2-6 days | last week
| in a week
7-28 days | # weeks ago
| in # weeks
28 days - 2 months | last month
| in a month
2-11 months | # months ago
| in # months
11-23 months | last year
| in a year
2+ years | # years ago
| in # years