Inital Commit
This commit is contained in:
81
html/rechner/node_modules/node-cron/dist/cjs/time/localized-time.js
generated
vendored
Normal file
81
html/rechner/node_modules/node-cron/dist/cjs/time/localized-time.js
generated
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.LocalizedTime = void 0;
|
||||
class LocalizedTime {
|
||||
timestamp;
|
||||
parts;
|
||||
timezone;
|
||||
constructor(date, timezone) {
|
||||
this.timestamp = date.getTime();
|
||||
this.timezone = timezone;
|
||||
this.parts = buildDateParts(date, timezone);
|
||||
}
|
||||
toDate() {
|
||||
return new Date(this.timestamp);
|
||||
}
|
||||
toISO() {
|
||||
const gmt = this.parts.gmt.replace(/^GMT/, '');
|
||||
const offset = gmt ? gmt : 'Z';
|
||||
const pad = (n) => String(n).padStart(2, '0');
|
||||
return `${this.parts.year}-${pad(this.parts.month)}-${pad(this.parts.day)}`
|
||||
+ `T${pad(this.parts.hour)}:${pad(this.parts.minute)}:${pad(this.parts.second)}`
|
||||
+ `.${String(this.parts.milisecond).padStart(3, '0')}`
|
||||
+ offset;
|
||||
}
|
||||
getParts() {
|
||||
return this.parts;
|
||||
}
|
||||
set(field, value) {
|
||||
this.parts[field] = value;
|
||||
const newDate = new Date(this.toISO());
|
||||
this.timestamp = newDate.getTime();
|
||||
this.parts = buildDateParts(newDate, this.timezone);
|
||||
}
|
||||
}
|
||||
exports.LocalizedTime = LocalizedTime;
|
||||
function buildDateParts(date, timezone) {
|
||||
const dftOptions = {
|
||||
year: 'numeric',
|
||||
month: '2-digit',
|
||||
day: '2-digit',
|
||||
hour: '2-digit',
|
||||
minute: '2-digit',
|
||||
second: '2-digit',
|
||||
weekday: 'short',
|
||||
hour12: false
|
||||
};
|
||||
if (timezone) {
|
||||
dftOptions.timeZone = timezone;
|
||||
}
|
||||
const dateFormat = new Intl.DateTimeFormat('en-US', dftOptions);
|
||||
const parts = dateFormat.formatToParts(date).filter(part => {
|
||||
return part.type !== 'literal';
|
||||
}).reduce((acc, part) => {
|
||||
acc[part.type] = part.value;
|
||||
return acc;
|
||||
}, {});
|
||||
return {
|
||||
day: parseInt(parts.day),
|
||||
month: parseInt(parts.month),
|
||||
year: parseInt(parts.year),
|
||||
hour: parts.hour === '24' ? 0 : parseInt(parts.hour),
|
||||
minute: parseInt(parts.minute),
|
||||
second: parseInt(parts.second),
|
||||
milisecond: date.getMilliseconds(),
|
||||
weekday: parts.weekday,
|
||||
gmt: getTimezoneGMT(date, timezone)
|
||||
};
|
||||
}
|
||||
function getTimezoneGMT(date, timezone) {
|
||||
const utcDate = new Date(date.toLocaleString('en-US', { timeZone: 'UTC' }));
|
||||
const tzDate = new Date(date.toLocaleString('en-US', { timeZone: timezone }));
|
||||
let offsetInMinutes = (utcDate.getTime() - tzDate.getTime()) / 60000;
|
||||
const sign = offsetInMinutes <= 0 ? '+' : '-';
|
||||
offsetInMinutes = Math.abs(offsetInMinutes);
|
||||
if (offsetInMinutes === 0)
|
||||
return 'Z';
|
||||
const hours = Math.floor(offsetInMinutes / 60).toString().padStart(2, '0');
|
||||
const minutes = Math.floor(offsetInMinutes % 60).toString().padStart(2, '0');
|
||||
return `GMT${sign}${hours}:${minutes}`;
|
||||
}
|
||||
//# sourceMappingURL=localized-time.js.map
|
||||
Reference in New Issue
Block a user