UNPKG

@kwiz/common

Version:

KWIZ common utilities and helpers for M365 platform

58 lines 2.66 kB
"use strict"; 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