Natural Polyglot Machine
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    its-a-datepublic

    alt tag

    When given a Date description, it returns a Date object. No need to know exact date format.

    Currently supporting languages:

    • English
    • Russian
    • Arabic
    • Persian
    • Turkish
    • Greek
    • Spanish
    • French

    Installation

    $ npm install its-a-date --save
    

    Code Example

    var itsadate = require('its-a-date');
     
    // Mon May 02 2016 05:48:00 GMT+0300 (Jerusalem Daylight Time)`
    itsadate.parse("May 2 05:48:29 2016");
     
    // Wed Apr 11 1990 00:45:00 GMT+0300 (Jerusalem Daylight Time)
    itsadate.parse("3 months after 11/01/1990");
     
    // Sat Aug 26 1989 02:43:00 GMT+0300 (Jerusalem Daylight Time)
    itsadate.parse("10000 days before 11/01/2017")

    More Code Examples

    Parse Hour & Date

    // Fri Aug 19 2016 11:47:00 GMT+0300 (Jerusalem Daylight Time) 
    itsadate.parse("11:47");
     
    // Tue Mar 27 2012 14:05:00 GMT+0200 (Jerusalem Standard Time)
    itsadate.parse("27.3.2012");
     
    // Tue Mar 27 2012 12:00:00 GMT+0200 (Jerusalem Standard Time)
    itsadate.parse("27/3/2012 12:00");

    Parse Relatives

    // Thu Aug 18 2016 14:05:00 GMT+0300 (Jerusalem Daylight Time)
    itsadate.parse("yesterday");
     
    // Thu Aug 18 2016 16:20:00 GMT+0300 (Jerusalem Daylight Time)
    itsadate.parse("yesterday at 16:20");
     
    //Fri Aug 19 2011 14:05:00 GMT+0300 (Jerusalem Daylight Time)
    itsadate.parse("5 years ago");
     
    // Fri Aug 19 2011 15:44:00 GMT+0300 (Jerusalem Daylight Time)
    itsadate.parse("5 years ago at 15:44");

    Parse the Extreme (Not Recommended)

    When its-a-date doesn't know what date it is, it will return undefined. However many times it surprises.

    // Sun Jan 01 1984 14:05:00 GMT+0200 (Jerusalem Standard Time)
    itsadate.parse('it was on the 1st of January, ' +
                        'the dark cold winter of 1984');
     
    // undefined
    itsadate.parse("pikachu");

    Settings, Formats & Time Differences

    Use settings to alter the format expected

    // Hint its-a-date to prefer mm/dd/yyyy over dd/mm/yyyy
    itsadate.settings({'day_before_month':false});
     
    // Thu Nov 01 1990 01:55:00 GMT+0200 (Jerusalem Standard Time)
    itsadate.parse("11/1/1990");
    // Don't allow its-a-date to guess any other format than specified (day MUST be before month or vise-versa)
    itsadate.settings({'strict':true});

    You can prevent changing the settings globaly, by delivering it as a second parameter

    // November 3rd 2014
    itsadate.parse("11-3-2014",{'day_before_month':false});
     
    // Doesn't use prev settings March 11th 2014 
    itsadate.parse("11-3-2014");

    Restore settings to default

    // Restore setting back to default (day_before_month=true)
    itsadate.settings().restore();
     
    // Thu Jan 11 1990 01:55:00 GMT+0200 (Jerusalem Standard Time)
    itsadate.parse("11/1/1990");

    Alter GMT to overcome time difference

    // Set GMT+5.5, Mumbai India
    itsadate.settings({gmt: 5.5});
    itsadate.parse("now");

    Learn More

    Hit brag() to console out examples of any token implemented

    itsadate.brag();

    Hit settings() to get settings object with configutations you can alter. descriptions included.

    itsadate.settings();

    No Exceptions

    When date description has inner conflicts it resolves to undefined

    // undefined
    itsadate.parse('1st of november 02/03/2000')

    Motivation

    1. Allows a user to type a date more naturally in a web page or social media.
    2. Allows crawlers to parse relative dates easily.

    Strategy (How it works?)

    A micro-compiler is implemented. It parses date part tokens & interpret them as modifications on the perceived date.

    Upcoming Features

    1. Custom token insertion
    2. More Languages perhaps

    Git

    https://github.com/bendorshai/its-a-date

    How it works?

    Read the post I wrote about this project

    install

    npm i its-a-date

    Downloadslast 7 days

    5

    version

    1.2.6

    license

    ISC

    repository

    github.com

    last publish

    collaborators

    • avatar