ninjs-lodash
Version:
lodash wrapper + utils
91 lines (75 loc) • 1.75 kB
JavaScript
/**
* Date Utils
* ninjs.lodash.date
*/
const _ = require('lodash')
const moment = require('moment')
exports = module.exports = {
mo: mo,
now: now,
date: date,
dateValid: dateValid,
datef: datef,
dateDiff: dateDiff,
nowDiff: nowDiff,
epoch: epoch,
unix: unix,
cal: cal,
fromNow: fromNow,
utc: utc,
utcf: utcf,
local: local,
localf: localf
}
// _.assign(_, { date: exports })
_.mixin(exports)
function mo(src) { return moment(_.isString(src) ? new Date(src) : src) }
function now() { return moment() }
function date(src) { return dateValid(src) ? mo(src) : null }
function dateValid(src) {
let mom = mo(src)
return mom.isValid() ? true : false
}
function datef(src, fmt) {
let mom = date(src)
return mom ? mom.format(fmt || 'MMMM Do YYYY, h:mm:ss A') : ''
}
function dateDiff(end, start) {
end = date(end)
start = date(start)
return end && start ? end.diff(start) : null
}
function nowDiff(src) { return dateDiff(now(), src) }
function epoch(src) {
let mom = date(src)
return mom ? mom.valueOf() : null
}
function unix(src) {
let mom = date(src)
return mom ? mom.unix() : null
}
function cal(src) {
let mom = date(src)
return mom ? mom.calendar() : ''
}
function fromNow(src) {
let mom = date(src)
return mom ? mom.fromNow() : ''
}
function utc(src) {
let mom = date(src)
return mom ? mom.utc() : null
}
function utcf(src, fmt) {
let mom = utc(src)
return mom ? mom.format(fmt || '') : ''
}
function local(src) {
let mom = date(src)
return mom ? date(mom.toDate()) : null
}
function localf(src, fmt) {
let mom = local(src)
return mom ? mom.format(fmt || 'YYYY-MM-DD HH:mm:ss A') : ''
}