Install
npm install @citation-js/date
Use
let { parse, format } = require('@citation-js/date')
parse('2000-12-31')
// { 'date-parts': [[2000, 12, 31]] }
format({ 'date-parts': [[2000, 12, 31]] }, '/')
// '2000/12/31'
Input
Supported formats:
- Epoch time (in number form)
YYYY-MM-DD
[+-]YYYYYY[Y...]-MM-DD
[DDD, ]DD MMM YYYY
-
M[M]/D[D]/YY[YY]
(1) -
D[D] M[M] Y[Y...]
(2, 1) -
[-]Y[Y...] M[M] D[D]
(2) -
D[D] MMM Y[Y...]
(2) -
[-]Y[Y...] MMM D[D]
(2) -
M[M] [-]Y[Y...]
(3, 5) -
[-]Y[Y...] M[M]
(3, 4, 5) -
MMM [-]Y[Y...]
(3, 5) -
[-]Y[Y...] MMM
(3, 5) -
[-]Y[Y...]
(5)
Generally, formats support trailing parts, which are disregarded.
- When the former of these formats overlaps with the latter, the former is preferred
- " ", ".", "-" and "/" are all supported as separator
- Any sequence of non-alphanumerical characters are supported as separator
- This format is only assumed if the year is bigger than the month
- This format doesn't support trailing parts
API
parse(String date[, String endDate]) -> Object
-
String date
: Any date -
String endDate
optional: Any date; when added, the first parameter is treated as the start date of the range.
format(Object date[, String delimiter = '-']) -> String
-
Object date
: Any date -
String delimiter
optional: Separate parts by delimiter
Here, Object date
(CSL-JSON date format) can have the following properties:
-
date-parts
: array with one or two dates, each date being an array of [year, month, day], the last two parts being optional -
raw
: raw date