date-template
- Easy function of -30 lines of code
- Date output in any format
- Change the date type
- No dependencies
install
$ npm install -S date-template
template
%Y
Year ****%M
Month, from 1 to 12%D
Day, from 1 to 31%Dw
Day of the week 0-sunday, 6-saturday%h
hourse%m
minutes%s
seconds%ms
milliseconds%0
special prefix for all template types
use
one parameter - template string
var dateTemplate = require('date-template')
dateTemplate('%h:%m:%s')
dateTemplate('%0h:%0m:%0s')
dateTemplate('%h/%m/%s')
dateTemplate('hourse:%h minutes:%m seconds:%s')
dateTemplate('%0h:WOW:%0m')
two parameters - Date object
var dateTemplate = require('date-template')
var oldDate = new Date()
oldDate.setHours(oldDate.getHours() -3)
dateTemplate('%0h:%0m:%0s', oldDate)
var milliseconds = +new Date()
dateTemplate('%0h:%0m:%0s', milliseconds)
dateTemplate('%M %D %Y, %h:%m:%s', '2017-07-10T14:11:34+0300')
three parameters - middleware function
middleware mount
var dateTemplate = require('date-template')
var middlewareMount = (date) => {
var mounth = [
null,
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
]
date.M.value = mounth[ date.M.value ]
return date
}
dateTemplate('Today is ~M~ ~D~, ~Y~', false, middlewareMount)
middleware Am/Pm
var middlewareAmPm = (date) => {
date.ampm = {
key: /%am:pm/g,
value: date.h.value / 12 > 1
? 'pm'
: 'am'
}
date.h.value = date.h.value / 12 > 1
? date.h.value - 12
: date.h.value
return date
}
dateTemplate('%h:%0m %am:pm', false, middlewareAmPm)
special prefix
dateTemplate('%h:%m:%s')
dateTemplate('%0h:%0m:%0s')
node js test
dateTemplate("%M %D %Y, %h:%m:%s") x 162,318 ops/sec ±5.79% (83 runs sampled)
moment().format("MMMM Do YYYY, h:mm:ss a") x 104,363 ops/sec ±9.36% (77 runs sampled)
Fastest is dateTemplate("%M %D %Y, %h:%m:%s")
source code
var dateTemplate = function ( format, oldDate, middleware ) {
var date = oldDate ? new Date(oldDate) : new Date();
var tmp = {
Y: { key: /%0?Y/g, value: date.getFullYear(), },
M: { key: /%0?M/g, value: date.getMonth() + 1, },
D: { key: /%0?D/g, value: date.getDate(), },
Dw: { key: /%0?Dw/g, value: date.getDay(), },
h: { key: /%0?h/g, value: date.getHours(), },
m: { key: /%0?m/g, value: date.getMinutes(), },
s: { key: /%0?s/g, value: date.getSeconds(), },
ms: { key: /%0?ms/g, value: date.getMilliseconds(), },
}
tmp = middleware ? middleware(tmp) : tmp
Object.keys(tmp).forEach(function (el) {
var current = tmp[el]
format = format.replace( current.key, function (match) {
if (match.indexOf('0') !== -1) {
return String(current.value).length == 1
? '0' + current.value
: current.value
}
return current.value
})
})
return format
};