(function () { var Diller = window.Diller = window.Diller || {}; function toDate(unknown) { if (!unknown) { return undefined; } else if (moment.isMoment(unknown)) { return unknown; } else if (typeof unknown === 'string') { unknown = unknown.trim(); if (unknown == '') { return moment(); } return moment(unknown, 'YYYY-MM-DDTHH:mm.sssZ'); } else if (typeof unknown === 'string' || moment.isDate(unknown)) { return moment(unknown); } else { return undefined; } } Diller.Interval = function (from, to) { var f = toDate(from), t = toDate(to); if (f.isAfter(t)) { var tmp = f; f = t; t = tmp; } return { getFrom: function () { return f || moment(); }, getTo: function () { return t || moment(); }, toString: function () { return 'yo' } }; }; Diller.Interval.create = function (value) { if (value instanceof Diller.Interval) { return value; } return new Diller.Interval.hours(24); }; Diller.Interval.hours = function (hours) { var to = moment(); var from = to.subtract(hours, 'hours'); return new Diller.Interval(from, to); }; })();