optimal-date-range

3.1.0 • Public • Published

optimal-date-range

Returns periods of time in target date range.

You can simply count time between 2 dates in human acceptable format.

Example

let getRange = require("optimal-date-range");
 
return getRange("2018-01-01", "2019-12-15");
 
/*
Returns object
 
{ year: [ '2018' ],
  quarter: [ '2019-1st', '2019-2nd', '2019-3rd' ],
  month: [ '2019-10', '2019-11' ],
  day:
   [ '2019-12-01',
     '2019-12-02',
     '2019-12-03',
     '2019-12-04',
     '2019-12-05',
     '2019-12-06',
     '2019-12-07',
     '2019-12-08',
     '2019-12-09',
     '2019-12-10',
     '2019-12-11',
     '2019-12-12',
     '2019-12-13',
     '2019-12-14',
     '2019-12-15' ] }
*/

You can restrict year/month/quarter granularity and define custom date formats in the next way:

 
let getRanges = require("optimal-date-range");
 
return getRange(
    "2018-01-01",
     "2019-12-15",
    { formats: {day: "DD/MM/YY"}, restrictedGranularity: {quarter: true} }
);
 
/*
Returns object
 
{ year: [ '2018' ],
  month:
   [ '2019-01',
     '2019-02',
     '2019-03',
     '2019-04',
     '2019-05',
     '2019-06',
     '2019-07',
     '2019-08',
     '2019-09',
     '2019-10',
     '2019-11' ],
  day:
   [ '01/12/19',
     '02/12/19',
     '03/12/19',
     '04/12/19',
     '05/12/19',
     '06/12/19',
     '07/12/19',
     '08/12/19',
     '09/12/19',
     '10/12/19',
     '11/12/19',
     '12/12/19',
     '13/12/19',
     '14/12/19',
     '15/12/19' ] }
*/

You can get range only in specific granularity by restricting all others.

 
let getRanges = require("optimal-date-range");
 
let dateFrom = "2003-01-01";
let dateTo = "2019-05-07";
 
return getRanges(dateFrom, dateTo, {restrictedGranularity: {month: true, day: true, quarter: true}});
 
/*
Returns object
 
{
    year: ["2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010",
     "2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019"]
}
*/

In this case, as you can see, 2019 year included as well, because there's dates in this year.

Dependencies (1)

Dev Dependencies (2)

Package Sidebar

Install

npm i optimal-date-range

Weekly Downloads

0

Version

3.1.0

License

WTFPL

Unpacked Size

20.8 kB

Total Files

5

Last publish

Collaborators

  • human_