mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-07 08:23:55 +00:00
refactor: add timezone data to session
This commit is contained in:
committed by
Carlos Valente
parent
50ebcf4e14
commit
4a6fbc2a92
@@ -7,6 +7,7 @@ import { getLastRequest } from '../../api-integration/integration.controller.js'
|
||||
import { getLastLoadedProject } from '../../services/app-state-service/AppStateService.js';
|
||||
import { runtimeService } from '../../services/runtime-service/RuntimeService.js';
|
||||
import { getNetworkInterfaces } from '../../utils/network.js';
|
||||
import { getTimezoneLabel } from '../../utils/time.js';
|
||||
|
||||
const startedAt = new Date();
|
||||
|
||||
@@ -24,7 +25,7 @@ export async function getSessionStats(): Promise<SessionStats> {
|
||||
lastRequest: lastRequest !== null ? lastRequest.toISOString() : null,
|
||||
projectName,
|
||||
playback,
|
||||
timezone: startedAt.getTimezoneOffset(),
|
||||
timezone: getTimezoneLabel(startedAt),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { MILLIS_PER_HOUR, MILLIS_PER_MINUTE, MILLIS_PER_SECOND, parseUserTime } from 'ontime-utils';
|
||||
import { isISO8601 } from '../../../../packages/utils/src/date-utils/isTimeString.js';
|
||||
import { MILLIS_PER_HOUR, MILLIS_PER_MINUTE, MILLIS_PER_SECOND, pad, parseUserTime, isISO8601 } from 'ontime-utils';
|
||||
|
||||
export const timeFormat = 'HH:mm';
|
||||
export const timeFormatSeconds = 'HH:mm:ss';
|
||||
@@ -46,3 +45,18 @@ export function parseExcelDate(excelDate: unknown): number {
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
export function getTimezoneLabel(date: Date): string {
|
||||
const tz = date.getTimezoneOffset();
|
||||
const tzName = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
||||
|
||||
// timezone offset is inverted
|
||||
const sign = tz < 0 ? '+' : '-';
|
||||
const abs = Math.abs(tz);
|
||||
|
||||
// convert minutes to hours
|
||||
const hours = Math.floor(abs / 60);
|
||||
const minutes = abs % 60;
|
||||
|
||||
return `GMT ${sign}${pad(hours)}:${pad(minutes)} ${tzName}`;
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ export interface SessionStats {
|
||||
lastRequest: MaybeString;
|
||||
projectName: string;
|
||||
playback: Playback;
|
||||
timezone: number;
|
||||
timezone: string;
|
||||
}
|
||||
|
||||
export interface GetInfo {
|
||||
|
||||
@@ -44,10 +44,11 @@ export {
|
||||
millisToSeconds,
|
||||
secondsInMillis,
|
||||
} from './src/date-utils/conversionUtils.js';
|
||||
export { isTimeString } from './src/date-utils/isTimeString.js';
|
||||
export { isISO8601, isTimeString } from './src/date-utils/isTimeString.js';
|
||||
export {
|
||||
formatFromMillis,
|
||||
millisToString,
|
||||
pad,
|
||||
removeLeadingZero,
|
||||
removeSeconds,
|
||||
removeTrailingZero,
|
||||
|
||||
@@ -2,7 +2,7 @@ import type { MaybeNumber } from 'ontime-types';
|
||||
|
||||
import { millisToSeconds, secondsToHours, secondsToMinutes } from './conversionUtils.js';
|
||||
|
||||
function pad(val: number): string {
|
||||
export function pad(val: number): string {
|
||||
return String(val).padStart(2, '0');
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user