JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1205
  • Score
    100M100P100Q105877F
  • License MIT

fast date formating

Package Exports

  • fast-date-format

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (fast-date-format) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

fast-date-format

Build Status Coverage Status NPM version Greenkeeper badge JavaScript Style Guide

fast-date-format is significantly faster than other date formatting modules.

Installation

npm install fast-date-format

Example

const DateFormat = require('fast-date-format');

const dateFormat = new DateFormat('YYYYMMDD');

dateFormat.format();
dateFormat.format(new Date());

Escaping

To escape characters in a format, surround the characters with square brackets.

const dateFormat = new DateFormat('[Month: ]MMMM');

dateFormat.format(); // Month: December

Tokens

Supported formatting tokens:

Token Example Description
YYYY 2018 Year
YY 18 2 Digit Year
MMMM January..December Month name
MMM Jan..Dec 3 letter month name
MM 01..12 Month
M 1..12 Month
HH 00..23 Hours (24 hour time)
H 0..23 Hours (24 hour time)
hh 01..12 Hours (12 hour time)
h 1..12 Hours (12 hour time)
kk 01..24 Hours (24 hour time)
k 1..24 Hours (24 hour time)
A am, pm Post or ante meridiem
dddd Monday..Sunday Day name
ddd Mon..Sun 3 letter day name
DDDD 001..365 Day of year
DDD 1..365 Day of year
DD 01..31 Day of month
D 1..31 Day of month
E 1..7 Day of week
m 0..59 Minutes
mm 00..59 Minutes
s 0..59 Seconds
ss 00..59 Seconds
SSS 000..999 Milliseconds
ZZ -02:00 Offset from UTC
Z -0200 Offset from UTC
x 1528643900952 Unix timestamp in ms

API

DateFormat(options)

Creates a new date formatter.

options

Either a date format as a string or an object with the following properties:

dateFormat

A date format as a string.

cache (optional)

Enables caching to increase formatting speed if set to true. Defaults to false.

DateFormat#format([date])

Formats the date according to the dateFormat. If no date is passed the current date is used.

DateFormat#addLocale(language, data)

Adds translations for the names of months and weekdays.

dateFormat.addLocale('en', {
  weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
  months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
})

Three letter abbreviations of the names are being generated from the months and weekdays.

DateFormat#setLocale(language)

Changes the locale of the DateFormat instace to language. Build-in languages: en & de.

dateFormat.addLocale('en')

Benchmark

The benchmark has been run with Node.js v10.16.3.

$ node benchmark/benchmark.js
moment x 268,396 ops/sec ±0.87% (88 runs sampled)
date-format x 380,505 ops/sec ±0.42% (91 runs sampled)
dateformat x 99,375 ops/sec ±0.91% (87 runs sampled)
fast-date-format x 1,116,499 ops/sec ±0.57% (86 runs sampled)
fecha x 230,543 ops/sec ±0.93% (93 runs sampled)
speed-date x 1,083,871 ops/sec ±0.65% (91 runs sampled)
date-fns x 101,370 ops/sec ±1.18% (89 runs sampled)
Fastest is fast-date-format

With activated cache option:

$ node benchmark/benchmarkCache.js
moment x 356,945 ops/sec ±0.92% (84 runs sampled)
date-format x 404,826 ops/sec ±0.63% (86 runs sampled)
dateformat x 111,103 ops/sec ±1.03% (86 runs sampled)
fast-date-format x 2,618,465 ops/sec ±0.90% (90 runs sampled)
fecha x 306,050 ops/sec ±0.51% (91 runs sampled)
speed-date x 1,950,085 ops/sec ±0.82% (86 runs sampled)
date-fns x 150,776 ops/sec ±0.47% (88 runs sampled)
Fastest is fast-date-format

License

MIT