!nix build statusnix-build-imagenix-build-url
!Windows build statuswin-build-imagewin-build-url
!Transpilation statustranspilation-image
!npm versionnpm-imagenpm-url
Output:
When invoked without arguments (defaults to mode=0), returns as:
duration - Time duration utilities
Formerly part of es5-ext project.Installation
Node.js
$ npm install duration
Browser
Can be bundled for browser with help of modules-webmakeExample usage:
var Duration = require("duration");
var duration = new Duration(new Date(2000, 6, 7), new Date(2010, 8, 13, 3, 23, 8, 456));
console.log("Years: ", duration.years);
console.log("Months: ", duration.months);
console.log("Days: ", duration.days);
console.log("Hours: ", duration.hours);
console.log("Minutes: ", duration.minutes);
console.log("Seconds: ", duration.seconds);
console.log("Milliseconds: ", duration.milliseconds);
console.log("Trailing months: ", duration.month);
console.log("Trailing days: ", duration.day);
console.log("Trailing hours: ", duration.hour);
console.log("Trailing minutes: ", duration.minute);
console.log("Trailing seconds: ", duration.second);
console.log("Trailing milliseconds: ", duration.millisecond);
console.log("Default string representation: ", duration.toString());
console.log("Alternative string representation: ", duration.toString(1));
console.log("Custom string representation: ", duration.toString("H: %Hs m: %M"));
Output:
Years: 10
Months: 122
Days: 3720
Hours: 89283
Minutes: 5357003
Seconds: 321420188
Milliseconds: 321420188456
Trailing months: 2
Trailing days: 6
Trailing hours: 3
Trailing minutes: 23
Trailing seconds: 8
Trailing milliseconds: 456
Default string representation: 10y 2m 6d 03:23:08.456
Alternative string representation: 10y 2m 6d 3h 23m 8s 456ms
Custom string representation: H: 89283 m: 23
Duration(from, to)
Main module is both constructor and factory method, and can be used either way.from
and to
are expected to be JavaScript Date objects. to
is optional, and if not provided it defaults to current time.Duration.prototype properties
years
Returns full years of the durationmonths
Returns full months of the durationdays
Returns full days of the durationhours
Returns full hours of the durationseconds
Returns full seconds of the durationminutes
Returns full minutes of the durationmilliseconds
Returns milliseconds of the durationyear
Same asyears
. Returns full years of the durationmonth
Returns trailing months of the durationday
Returns trailing days of the durationhour
Returns trailing hours of the durationminute
Returns trailing minutes of the durationsecond
Returns trailing seconds of the durationmillisecond
Returns trailing seconds of the durationvalueOf()
Same asmilliseconds
. Returns milliseconds of the durationtoString(mode, threshold)
Returns readable representation of the duration.When invoked without arguments (defaults to mode=0), returns as:
10y 2m 6d 03:23:08.456
When invoked with mode 1
, returns alternative representation:10y 2m 6d 3h 23m 8s 456ms
Representation returned by default modes can be customized with threshold setting that trims lowest units:duration.toString(); // 10y 2m 6d 03:23:08.456
duration.toString(0, 1); // 10y 2m 6d 03:23:08
duration.toString(0, 2); // 10y 2m 6d 03:23
duration.toString(1); // 10y 2m 6d 3h 23m 8s 456ms
duration.toString(1, 1); // 10y 2m 6d 3h 23m 8s
duration.toString(1, 2); // 10y 2m 6d 3h 23m
toString(format)
When invoked with string, formats the duration according to given pattern, where:%y
-duration.year
%m
-duration.month
%d
-duration.day
%H
-duration.hour
%M
-duration.minute
%S
-duration.second
%L
-duration.millisecond
%ms
-duration.months
%ds
-duration.days
%Hs
-duration.hours
%Ms
-duration.minutes
%Ss
-duration.seconds
%Ls
-duration.milliseconds
%sign
- If duration is negative outputs-
otherwise empty string
Tests
$ npm test