database-builder
Version:
Library to assist in creating and maintaining SQL commands.
65 lines (64 loc) • 2.74 kB
JavaScript
;
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;