UNPKG

database-builder

Version:

Library to assist in creating and maintaining SQL commands.

65 lines (64 loc) 2.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DatetimeUtils = void 0; var moment = require("moment"); var errors_1 = require("./core/errors"); var utils_1 = require("./core/utils"); var DatetimeUtils = /** @class */ (function () { function DatetimeUtils() { } DatetimeUtils.datetimeToDatabase = function (date) { if (date) { if (utils_1.Utils.isNumber(date)) { return date; } if (utils_1.Utils.isDate(date)) { return Math.round((date.getTime() - (date.getTimezoneOffset() * 60000)) / 1000); } if (utils_1.Utils.isString(date) && /^(\d{4})-(\d{2})-(\d{2})(T(\d{2})\:(\d{2})\:(\d{2})(\.\d{1,3})?)?((([+-](\d{2})\:(\d{2}))|Z{1})?)$/gm.test(date)) { return this.datetimeToDatabase(this.createDatetime(date)); } if (!date.unix) { throw new errors_1.DatabaseBuilderError("Date format incorrect, value: ".concat(date)); } if (date.utcOffset) { if (date.utcOffset() !== 0) { throw new errors_1.DatabaseBuilderError("Date with utc(".concat(date.utcOffset(), ") offset not supported create date using DatetimeUtils.now() for date current or DatetimeUtils.datetimeIgnoreTimeZone({date}) for especific date")); } return this.datetimeIgnoreTimeZone(date).unix(); } return date.unix(); } return void 0; }; DatetimeUtils.datetimeIgnoreTimeZone = function (date) { return moment(date).utc().add(date.utcOffset(), "m"); }; DatetimeUtils.datetimeIgnoreTimeZoneDate = function (date) { var userTimezoneOffset = date.getTimezoneOffset() * 60000; return new Date(date.getTime() - userTimezoneOffset); }; DatetimeUtils.now = function () { return this.datetimeIgnoreTimeZone(moment()); }; DatetimeUtils.nowDate = function () { return this.datetimeIgnoreTimeZoneDate(new Date()); }; DatetimeUtils.dateToDatabase = function (date) { return this.datetimeToDate(date).unix(); }; DatetimeUtils.createDatetime = function (date) { return this.datetimeIgnoreTimeZone(moment.utc(date)); }; DatetimeUtils.datetimeToDate = function (date) { return moment.utc(this.createDatetime(date).toISOString(), "YYYY-MM-DD"); }; DatetimeUtils.databaseToDatetime = function (unix) { if (unix) { return moment.utc(unix * 1000); } return void 0; }; return DatetimeUtils; }()); exports.DatetimeUtils = DatetimeUtils;