A bunch of settings and functions for creating date formats in Quartz style.
npm install quartz-date-formatters --save
npm start (run tests and watch for changes)
npm test (run tests)
import { dateFormatters } from 'quartz-date-formatters';
let dateJan1 = new Date(1982, 0, 1);
dateFormatters.lmdy(dateJan1) // 1/1/82
dateFormatters.Mdd(dateJan1) // Jan. 1
dateFormatters.Mdd(dateJan1) // Jan. 1
dateFormatters.Q(dateJan1) // 1982
dateFormatters.Q(dateJan1, 7) // "Q3" (7 is used to set quarter start month)
There are many more examples of usage in the tests.
This library exposes two very similar objects:
import { dateFormats, dateFormatters } from 'quartz-date-formatters';
Each object is a key/value mapping of our own custom date format types (see a list of them below).
The values in dateFormats
are either of type String
or Function
. The String
s are valid [d3-time-format][1] strings, that is to say, you can pass them directly to d3-time-format
to create a formatter function.
The Function
s are custom date formatters that have the type signature:
(Javascript Date) -> String
The dateFormatters
object exposes all formatter functions of that type signature, processing dateFormats
and passing the d3 formatter strings to d3-time-format
. They are only separate in case you need to pass the formatter string around (as we need to do in Atlas JSON, as JSON does not support functions).
Available formats:
dateFormatters.lmdy(date)
dateFormatters.mmdd(date)
dateFormatters.Mdd(date)
dateFormatters.M1d(date)
dateFormatters.ddM(date)
dateFormatters.mmyy(date)
dateFormatters.yy(date)
dateFormatters.yyyy(date)
dateFormatters.MM(date)
dateFormatters.M(date)
dateFormatters.h(date)
dateFormatters.hmm(date)
dateFormatters.Q(date)
Sample output for all formatters can be seen in the tests.