1
0
Fork 0
forked from Kispi/Core
HGOE-SaS/webapp/src/services/date.service.ts

47 lines
No EOL
1.4 KiB
TypeScript

import { PocketbaseService } from './pocketbase.service';
const API = PocketbaseService.getApi();
let serverTime: Date;
export class DateService {
public static toString(date: Date): string {
return date.toLocaleDateString('de-DE', {
day: '2-digit',
month: '2-digit',
year: 'numeric',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
});
}
public static toShortString(date: Date): string {
return date.toLocaleDateString('de-DE', {
day: '2-digit',
month: '2-digit',
year: 'numeric',
});
}
public static toTime(date: Date): string {
return date.toLocaleTimeString('de-DE', {
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
});
}
public static isToday(date: Date): boolean {
this.getServerTime();
if(!serverTime) { return false; }
return date.getDate() === serverTime.getDate() &&
date.getMonth() === serverTime.getMonth() &&
date.getFullYear() === serverTime.getFullYear();
}
public static isOlderThanAMinute(date: Date): boolean {
return date.getTime() < new Date().getTime() - 60 * 1000;
}
public static async getServerTime(): Promise<Date> {
if(!serverTime || this.isOlderThanAMinute(serverTime)) {
serverTime = new Date(await (await fetch(API.baseUrl + '/api/time')).text());
}
return serverTime;
}
}