npm.io
2.0.0 • Published 7 months ago

date-plus

Licence
MIT
Version
2.0.0
Deps
0
Size
15 kB
Vulns
0
Weekly
0

date-plus

Javascript dates extended with dateformat

  • Tiny wrapper function to create dates
  • returns normal Date objects extended with .format()
  • uses the built-in date parser, fixes a parser annoyance in ES5
  • unlike dateformat, format() doesn't throw if the date is invalid
  • choice of language strings - currently de and en are included

installation

$ npm install date-plus

usage

var date = require('date-plus');

// parse using native javascript parser
var d = date('5/10/2015');

// format
var output = d.format('ddd, dd mmm yyyy HH:MM:ss Z');

// or use a predefined mask
var output = d.format('expiresHeaderFormat');

// shortcut for date(d).format(fmt) - 2nd arg format string
var output = date(d, fmt);

// non-truthy input means current date/time
var now = date('');

var d = date('inva/lid/date');
var isValid = d.valid;          // false
var output = d.format();        // 'No Date'

// set language to german
date.lang('de');

// access dateformat masks
date.dateformat.masks.shortDate = ('yyyy.mm.dd');
format patterns
pattern interpretation
d day
dd day with leading 0
ddd day of week abbreviated
dddd day of week full
m month
mm month with leading 0
mmm month abbreviated
mmmm month full
yy year 2 digit
yyyy year 4 digit
h hours (12)
hh hours (12) with leading 0
H hours (24)
HH hours (24) with leading 0
M minutes
MM minutes with leading 0
s seconds
ss seconds with leading 0
l milliseconds 3 digits
L milliseconds 2 digits
t a or p for am or pm
tt am or pm
T A or P for am or pm
TT AM or PM
Z US timezone or GMT-????
o UTC offset e.g. +1000 or -0230
S day suffix e.g. 'nd' for 2
W week in year
N day in week
UTC:fmt render UTC instead of local
format masks
mask name interpretation
default ddd mmm dd yyyy HHss
shortDate m/d/yy
mediumDate mmm d, yyyy
longDate mmmm d, yyyy
fullDate dddd, mmmm d, yyyy
shortTime h:MM TT
mediumTime hss TT
longTime hss TT Z
isoDate yyyy-mm-dd
isoTime HHss
isoDateTime yyyy-mm-dd'T'HHsso
isoUtcDateTime UTC:yyyy-mm-dd'T'HHss'Z'
expiresHeaderFormat ddd, dd mmm yyyy HHss Z
parsing yyyy-mm-dd

ES5 interprets strings matching yyyy-mm-dd as UTC even when running in other timezones.

E.g. 2015-9-15 is assumed to be midnight on that date in the local timezone

But 2015-10-15 is interpreted as midnight on that date in the UTC timezone because the date uses an ISO format and has a 2-digit month. This is problematic e.g. for code parsing unpadded dates passed via JSON.

This module provides a small polyfill to parse yyyy-mm-dd dates as local even in ES5.

credits