1.0.3 • Published 11 months ago
@chriscdn/duration v1.0.3
@chriscdn/duration
The Duration class represents an elapsed time, and provides methods and getters to convert among units.
Installation
Using npm:
npm install @chriscdn/durationUsing yarn:
yarn add @chriscdn/durationUsage
Creating a Duration Instance
You can construct a Duration instance by providing unit parameters. Each parameter is optional and defaults to zero if not provided.
import { Duration } from "@chriscdn/duration";
const duration = new Duration({
  weeks: 0,
  days: 0,
  hours: 24,
  minutes: 0,
  seconds: 0,
  milliseconds: 0,
  microseconds: 0,
});
console.log(duration.days); // 1
console.log(duration.hours); // 24
console.log(duration.minutes); // 1440
console.log(duration.seconds); // 86400
console.log(duration.milliseconds); // 86400000
console.log(duration.microseconds); // 86400000000Factory Function
A factory function is available to make the syntax a little more compact:
import { Duration } from "@chriscdn/duration";
const duration = Duration.with({ hours: 12 });
console.log(duration.days); // 0.5Static Methods
Static methods are also available for conversion:
import { Duration } from "@chriscdn/duration";
const hours = Duration.toHours({ hours: 1, minutes: 120 }); // 3
const milliseconds = Duration.toMilliseconds({ hours: 1 }); // 3.6e+6These methods are useful with functions like setInterval and setTimeout:
// Execute callback once per hour
setInterval(callback, Duration.toMilliseconds({ hours: 1 }));Constructing from Dates
A Duration instance can be created from the difference between two dates:
const d1 = new Date("2024-01-01T00:00:00Z");
const d2 = new Date("2024-01-02T00:00:00Z");
const duration = Duration.difference(d1, d2);
console.log(duration.days === 1); // true
// This is functionally equivalent to:
const duration = Duration.with({
  milliseconds: d2.getTime() - d1.getTime(),
});