lodash inspired Date
formatting methods.
https://github.com/flavioespinoza/datedash
yarn
yarn add datedash
using ES6 modules
import _d from 'datedash' _d.date('Apr 4, 2017', 'uk') // => 04 Apr 2017 _d.getTimestamp('Apr 4, 2017') // => 1491285600000
import individual modules
import { getTimestamp } from 'datedash' getTimestamp('Apr 4, 2017') // => 1491285600000
using require
const _d = require('datedash') _d.date('Apr 4, 2017', 'uk') // => 04 Apr 2017 _d.getTimestamp('Apr 4, 2017') // => 1491285600000
require individual modules
const { getTimestamp } = require('datedash') getTimestamp('Apr 4, 2017') // => 1491285600000
format
options /
, -
,
.
, MMM DD YYYY
, england
,
uk
, full
let any_date = 'Jan 7, 2019' _d.date(any_date, '/') // => 01/07/2019 _d.date(any_date, '-') // => 01-07-2019 _d.date(any_date, '.') // => 01.07.2019 _d.date(any_date, 'MMM DD YYYY') // => Jan 07 2019 _d.date(any_date, 'england') // => 07 Jan 2019 _d.date(any_date, 'uk') // => 07 Jan 2019 _d.date(any_date, 'full') // => Mon Jan 07 2019 00:00:00 GMT-0700 (Mountain Standard Time)
_d.date('3/6/19') // => 03/06/2019 _d.date('3-6-19') // => 03/06/2019 _d.date('3.6.19') // => 03/06/2019 _d.date('Mar 6 19') // => 03/06/2019 _d.date('Mar 6, 19') // => 03/06/2019 _d.date('Mar 6 2019') // => 03/06/2019 _d.date('Mar 6, 2019') // => 03/06/2019 _d.date('March 6 19') // => 03/06/2019 _d.date('March 6, 2019') // => 03/06/2019 _d.date('6 Mar 2019') // => 03/06/2019 _d.date('6 March 2019') // => 03/06/2019
_d.date() // => 03/06/2019 _d.date(new Date()) // => 03/06/2019 _d.date(1551875334611) // => 03/06/2019 _d.date(_.toString(new Date())) // => 03/06/2019
Any date past
, present
or
future
let past_date = 'Feb 14, 2019' _d.date(past_date) // => 02/14/2019 _d.date(past_date, '/') // => 02/14/2019 _d.date(past_date, '-') // => 02-14-2019 _d.date(past_date, '.') // => 02.14.2019 _d.date(past_date, 'MMM DD YYYY') // => Feb 14 2019 _d.date(past_date, 'england') // => 14 Feb 2019 _d.date(past_date, 'uk') // => 14 Feb 2019 _d.date(past_date, 'full') // => Thu Feb 14 2019 00:00:00 GMT-0700 (Mountain Standard Time)
Any timestamp
const _ = require('lodash') let five_days_ms = 4.32e8 let now_timestamp = _.now() // => 1551875334611 let future_timestamp = _.add(now_timestamp, five_days_ms) let past_timestamp = _.subtract(now_timestamp, five_days_ms) _d.date(now_timestamp) // => 03/06/2019 _d.date(future_timestamp) // => 03/11/2019 _d.date(past_timestamp) // => 03/01/2019
Handles undefined
or other for 2nd arg
format
let my_date = '02/14/2019' _d.date(my_date, undefined) // => 02/14/2019 _d.date(my_date, false) // => 02/14/2019 _d.date(my_date, true) // => 02/14/2019 _d.date(my_date, 'foo') // => 02/14/2019 _d.date(my_date, 8) // => 02/14/2019 _d.date(my_date, null) // => 02/14/2019
Clone repo:
git clone https://github.com/flavioespinoza/datedash.git
CD into datedash directory:
cd <your-path>/datedash
Install dependencies:
yarn
Run tests:
yarn run test
Test expected output:
add ✓ should add two numbers ✓ should not coerce arguments to numbers addDays ✓ should add 1 day '3/6/19' format '-' return '03-07-2019' ✓ should add 2 day '3/6/19' format '.' return '03.08.2019' ✓ should add 3 day '3/6/19' format 'uk' return '09 Mar 2019' date format options ✓ format '/' should return '01/07/2019' ✓ format '-' should return '01-07-2019' ✓ format '.' should return '01.07.2019' ✓ format 'england' should return '07 Jan 2019' ✓ format 'uk' should return '07 Jan 2019' ✓ format 'full' should return 'Mon Jan 07 2019 00:00:00 GMT-0700 (Mountain Standard Time)' date valid string input with all format options date input '1/7/19' converted to all formats ✓ date 1/7/19 with format / should return 01/07/2019 ✓ date 1/7/19 with format - should return 01-07-2019 ✓ date 1/7/19 with format . should return 01.07.2019 ✓ date 1/7/19 with format england should return 07 Jan 2019 ✓ date 1/7/19 with format uk should return 07 Jan 2019 date input '1-7-19' converted to all formats ✓ date 1-7-19 with format / should return 01/07/2019 ✓ date 1-7-19 with format - should return 01-07-2019 ✓ date 1-7-19 with format . should return 01.07.2019 ✓ date 1-7-19 with format england should return 07 Jan 2019 ✓ date 1-7-19 with format uk should return 07 Jan 2019 date input '1.7.19' converted to all formats ✓ date 1.7.19 with format / should return 01/07/2019 ✓ date 1.7.19 with format - should return 01-07-2019 ✓ date 1.7.19 with format . should return 01.07.2019 ✓ date 1.7.19 with format england should return 07 Jan 2019 ✓ date 1.7.19 with format uk should return 07 Jan 2019 date input 'Jan 7 19' converted to all formats ✓ date Jan 7 19 with format / should return 01/07/2019 ✓ date Jan 7 19 with format - should return 01-07-2019 ✓ date Jan 7 19 with format . should return 01.07.2019 ✓ date Jan 7 19 with format england should return 07 Jan 2019 ✓ date Jan 7 19 with format uk should return 07 Jan 2019 date input 'January 7 19' converted to all formats ✓ date January 7 19 with format / should return 01/07/2019 ✓ date January 7 19 with format - should return 01-07-2019 ✓ date January 7 19 with format . should return 01.07.2019 ✓ date January 7 19 with format england should return 07 Jan 2019 ✓ date January 7 19 with format uk should return 07 Jan 2019 date input '7 Jan 2019' converted to all formats ✓ date 7 Jan 2019 with format / should return 01/07/2019 ✓ date 7 Jan 2019 with format - should return 01-07-2019 ✓ date 7 Jan 2019 with format . should return 01.07.2019 ✓ date 7 Jan 2019 with format england should return 07 Jan 2019 ✓ date 7 Jan 2019 with format uk should return 07 Jan 2019 date input '7 January 2019' converted to all formats ✓ date 7 January 2019 with format / should return 01/07/2019 ✓ date 7 January 2019 with format - should return 01-07-2019 ✓ date 7 January 2019 with format . should return 01.07.2019 ✓ date 7 January 2019 with format england should return 07 Jan 2019 ✓ date 7 January 2019 with format uk should return 07 Jan 2019 date other valid inputs ✓ date '1/7/19' should return '01/07/2019' ✓ date '1-7-19' should return '01/07/2019' ✓ date '1.7.19' should return '01/07/2019' ✓ date 'Jan 7 19' should return '01/07/2019' ✓ date 'January 7 19' should return '01/07/2019' ✓ date '7 Jan 2019' should return '01/07/2019' ✓ date '7 January 2019' should return '01/07/2019' ✓ date undefined or new Date() should return todays date 08/14/2020 date format undefined ✓ format `undefined` should return `01/07/2019` ✓ format `null` should return `01/07/2019` ✓ format `foo` should return `01/07/2019` ✓ format `8` should return `01/07/2019` getTimestamp ✓ should get timestamp after epoch Noveber 4, 1973 ✓ should get timestamp before epoch July 4, 1776 _import ✓ should import @flavioespinoza/log_log isDate ✓ value Fri Aug 14 2020 12:16:04 GMT-0600 (Mountain Daylight Time) returns true ✓ value 3/3/19 returns true ✓ value Jul 4, 1776 returns true ✓ value -6106035604000 returns true ✓ value 25200000 returns true ✓ value [object Object] returns false ✓ value 3/33/19 returns false ✓ value true returns false ✓ value false returns false ✓ value 1 returns false ✓ value null returns false ✓ value undefined returns false subtract ✓ should subtract two numbers ✓ should coerce arguments to numbers subtractDays ✓ should subtract 1 day '3/6/19' format '-' return '03-05-2019' ✓ should subtract 2 day '3/6/19' format '.' return '03.04.2019' ✓ should subtract 3 day '3/6/19' format 'uk' return '03 Mar 2019' 78 passing (44ms) ✨ Done in 0.36s.