npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

datedash

v1.4.5

Published

lodash inspired date formatting and date math methods.

Downloads

83

Readme

datedash

lodash inspired Date formatting methods.

Docs

datedash/docs

Install

yarn

yarn add datedash

import

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

require

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 (string)

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)

Valid date string inputs

_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

Other valid inputs

_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

Testing

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.