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 } }