@kwiz/common
Version:
KWIZ common utilities and helpers for M365 platform
58 lines • 2.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseDate = void 0;
const date_1 = require("../../helpers/date");
const typecheckers_1 = require("../../helpers/typecheckers");
const date_2 = require("../date");
const knownscript_1 = require("../knownscript");
const web_1 = require("./web");
function _SPServerLocalTimeToUTC(dateValueStr) {
//yyyy-MM-ddTHH:mm or SPServerLocalTime (5/27/2021 11:34) to UTC
let utcTimeValue = (0, web_1.SPServerLocalTimeToUTCSync)(_spPageContextInfo.webServerRelativeUrl, dateValueStr);
if (!(0, typecheckers_1.isNullOrEmptyString)(utcTimeValue)) {
return new Date(utcTimeValue);
}
return null;
}
function parseDate(value) {
if ((0, typecheckers_1.isNullOrUndefined)(value) || ((0, typecheckers_1.isNullOrEmptyString)(value) && !(0, typecheckers_1.isDate)(value))) {
return null;
}
let dateValueStr = (0, typecheckers_1.isDate)(value) ? value.toISOString() : value;
var valueAsDate = null;
if ((0, date_1.isISODateUTC)(dateValueStr)) {
valueAsDate = new Date(dateValueStr);
}
else if ((0, date_1.isISODate)(dateValueStr)) {
//yyyy-MM-ddTHH:mm or SPServerLocalTime (5/27/2021 11:34) to UTC
valueAsDate = _SPServerLocalTimeToUTC(dateValueStr);
}
else {
//Don't think this is necessary because the SPServerLocalTimeToUTCSync can accept date strings in non ISO format (5/27/2021 11:34)
var dateParts = dateValueStr.split(" ");
if (dateParts.length) {
let locales = knownscript_1.LocaleKnownScript.loadSync();
valueAsDate = locales.ParseDate(dateValueStr);
dateValueStr = (0, date_2.toIsoDateFormat)(valueAsDate, { omitZ: true });
valueAsDate = _SPServerLocalTimeToUTC(dateValueStr);
if (valueAsDate instanceof Date && dateParts.length === 2) {
var time = dateParts[1];
if (time.length) {
var timeParts = locales.GetCurrentCulture() ? locales.GetCurrentCulture().dateTimeFormat.TimeSeparator : ":";
if (timeParts.length === 2) {
var hours = Number(timeParts[0]);
var minutes = Number(timeParts[1]);
valueAsDate.setHours(hours);
valueAsDate.setMinutes(minutes);
}
}
}
}
}
if (!valueAsDate) {
valueAsDate = new Date(dateValueStr);
}
return (0, typecheckers_1.isDate)(valueAsDate) ? valueAsDate : null;
}
exports.parseDate = parseDate;
//# sourceMappingURL=date.js.map