Skip to content

agenda/human-interval

Repository files navigation

Human Interval

Human-readable interval parser for Javascript.

Converts words written in English to numbers by using node-numbered.

Originally inspired by matthewmueller/date.

Uses

Human Interval is used by job scheduling libraries such as Agenda and Bree. They are a job schedulers for Node.js with cron expression syntax, human-friendly times, Dates, and more!

Example usage

const humanInterval = require('human-interval');

setTimeout(() => {
  // Do something!
}, humanInterval('three minutes'));

More sophisticated examples

Human Interval understands all of the following examples:

humanInterval('minute');
humanInterval('one minute');
humanInterval('1.5 minutes');
humanInterval('3 days and 4 hours');
humanInterval('3 days, 4 hours and 36 seconds');
humanInterval('4 months, 3 days, 5 hours and forty-five seconds');

The full list

Units

Supports the following units in the plural and singular forms:

  • seconds
  • minutes
  • hours
  • days
  • weeks
  • months — assumes 30 days
  • years — assumes 365 days

Wordy numbers

Supports numbers being written out in English words.

humanInterval('five minutes');

Hyphenated numbers

Supports hyphenated numbers.

humanInterval('twenty-five seconds');

Negative numbers

Supports negative numbers if the time starts with a - symbol immediately followed by a number.

humanInterval('-2 minutes');

License

The MIT License