109 lines
1.8 KiB
JavaScript
109 lines
1.8 KiB
JavaScript
import moment from "moment";
|
|
import "moment/locale/nl"
|
|
moment.locale('nl')
|
|
|
|
/**
|
|
* @param {string|moment.Moment} x
|
|
* @returns {moment.Moment}
|
|
*/
|
|
function date(x) {
|
|
if (!x) {
|
|
return moment()
|
|
}
|
|
if (_.isString(x)) {
|
|
let r = x.match(/^\[\[(.+)\]\]$/);
|
|
if (r) {
|
|
return moment(r[1], "DD MMM YYYY")
|
|
}
|
|
return moment(x, "DD MMM YYYY")
|
|
}
|
|
if (_.isObject(x) && _.has(x, 'title')) {
|
|
return moment(x.title, "DD MMM YYYY")
|
|
}
|
|
return moment(x, "YYYY-MM-DD");
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param {moment.Moment} d
|
|
* @param {int} n
|
|
* @param {string} s
|
|
* @returns {moment.Moment}
|
|
*/
|
|
function dateAdd(d, n, s) {
|
|
return date(d).add(n, s)
|
|
}
|
|
|
|
function dateSet(d, n, s) {
|
|
return date(d).set(s, n)
|
|
}
|
|
|
|
function dateGet(d, s) {
|
|
return date(d).get(s)
|
|
}
|
|
|
|
function dateFormat(d, fmt) {
|
|
return date(d).format(fmt)
|
|
}
|
|
|
|
function dateStartOf(d, period) {
|
|
return date(d).startOf(period)
|
|
}
|
|
|
|
function dateEndOf(d, period) {
|
|
return date(d).endOf(period)
|
|
}
|
|
|
|
function dateIsBefore(a, b) {
|
|
return date(a).isBefore(date(b))
|
|
}
|
|
|
|
function dateIsAfter(a, b) {
|
|
return date(a).isBefore(date(b))
|
|
}
|
|
|
|
function dateIsSame(a, b, g) {
|
|
return date(a).isSame(date(b), g);
|
|
}
|
|
|
|
function dateCalendar(d) {
|
|
return date(d).calendar(moment())
|
|
}
|
|
|
|
function dateDiff(a, b, g) {
|
|
return date(a).diff(date(b), g)
|
|
}
|
|
|
|
export default {
|
|
date,
|
|
dateAdd,
|
|
dateSet,
|
|
dateGet,
|
|
dateFormat,
|
|
dateStartOf,
|
|
dateEndOf,
|
|
dateIsBefore,
|
|
dateIsAfter,
|
|
dateIsSame,
|
|
dateCalendar,
|
|
dateDiff,
|
|
empty(x) {
|
|
return !x;
|
|
},
|
|
if: function (x, a, b) {
|
|
return x ? a : b
|
|
},
|
|
gt: function (a, b) {
|
|
return a > b
|
|
},
|
|
lt: function (a, b) {
|
|
return a < b
|
|
},
|
|
gteq: function (a, b) {
|
|
return a >= b
|
|
},
|
|
lteq: function (a, b) {
|
|
return a <= b
|
|
}
|
|
}
|