GitHub - lukeed/fromnow: A tiny (392B) utility for human-readable time differenc...
source link: https://github.com/lukeed/fromnow
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
FromNow
A tiny (392B) utility for human-readable time differences between now and past or future dates.
Install
$ npm install fromnow --save
Usage
A valid date string is the only required parameter.
const fromNow = require('fromnow'); fromNow('12/31/2010'); //=> "4 years, 10 months, 8 days, 10 hours, 15 minutes" fromNow('2030-05-20'); //=> "14 years, 6 months, 21 days, 5 hours, 43 minutes" fromNow('2030-05-20 14:02:47'); //=> "14 years, 6 months, 22 days, 2 hours, 44 minutes" fromNow('Wed, 20 Nov 1912 00:00:00 GMT'); //=> "103 years, 23 days, 18 hours, 20 minutes"
API
fromNow(date, options={})
Returns: String
A valid date string is the only required parameter.
date
Type: String
You may pass it any valid date string.
options.max
Type: Integer
Default: null
If set, will limits the return to display a maximum number of non-null segments.
Important: When
opts.zero = true
then empty segments will count towards yourmax
limit!
// zero=true "2 years, 0 months, 12 hours, 57 minutes" // zero=true; max=2 "2 years, 0 months" // zero=false "2 years, 12 hours, 57 minutes" // zero=false; max=2 "2 years, 12 hours"
options.suffix
Type: Boolean
Default: false
Appends "ago"
or "from now
" to the output.
// NOW = "Sun Jun 14 2015 15:12:05" fromNow("Sun Jun 14 2015 14:09:05", { and:true, suffix:true }); //=> "1 hour and 3 minutes ago" fromNow("Sun Jun 14 2017 14:09:05", { and:true, suffix:true, max:2 }); //=> "2 years and 10 days from now"
options.and
Type: Boolean
Default: false
Join the last two segments with " and "
.
"1 year, 4 hours, 16 minutes" //=> "1 year, 4 hours, and 16 minutes" "2 days, 12 hours" //=> "2 days and 12 hours"
options.zero
Type: Boolean
Default: false
Return segments with 0
value.
// NOW = "Sun Jun 14 2015 15:12:05" fromNow("Sun Jun 14 2015 15:14:05"); //=> "2 minutes" fromNow("Sun Jun 14 2015 15:14:05", { zero:true }); //=> "0 years, 0 months, 0 days, 0 hours, 2 minutes"
Examples
Limit the Output
fromNow('12/31/2010', { max:3 }); //=> "4 years, 10 months, 8 days" fromNow('2030-05-20', { max:2 }); //=> "14 years, 6 months"
Indicate Past or Future Tense
fromNow('12/31/2010', { max:3, suffix:true }); //=> "4 years, 10 months, 8 days ago" fromNow('12/31/2030', { max:1, suffix:true }); //=> "12 years from now"
Include 'and' in the Output
fromNow('12/31/2010', { max:3, suffix:true, and:true }); //=> "4 years, 10 months, and 8 days ago" fromNow('Wed, 20 Nov 1912 00:00:00 GMT', { max:2, suffix:true, and:true }); //=> "103 years and 23 days ago" // Will only apply on 2+ segments fromNow('2030-05-20', { max:1, and:true }); //=> "14 years"
License
MIT © Luke Edwards
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK