Nightly Piano Man

    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.

    Install

    npm i optimal-date-range

    DownloadsWeekly Downloads

    1

    Version

    3.1.0

    License

    WTFPL

    Unpacked Size

    20.8 kB

    Total Files

    5

    Last publish

    Collaborators

    • human_