forked from Kispi/Core
47 lines
No EOL
1.4 KiB
TypeScript
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;
|
|
}
|
|
} |