Server/project/src/utils/TimeUtil.ts
2023-03-03 15:23:46 +00:00

79 lines
2.0 KiB
TypeScript

import { injectable } from "tsyringe";
/**
* Utility class to handle time related problems
*/
@injectable()
export class TimeUtil
{
public static readonly oneHourAsSeconds = 3600;
public formatTime(date: Date): string
{
const hours = `0${date.getHours()}`.substr(-2);
const minutes = `0${date.getMinutes()}`.substr(-2);
const seconds = `0${date.getSeconds()}`.substr(-2);
return `${hours}-${minutes}-${seconds}`;
}
public formatDate(date: Date): string
{
const day = `0${date.getDate()}`.substr(-2);
const month = `0${date.getMonth() + 1}`.substr(-2);
return `${date.getFullYear()}-${month}-${day}`;
}
public getDate(): string
{
return this.formatDate(new Date());
}
public getTime(): string
{
return this.formatTime(new Date());
}
/**
* Get timestamp in seconds
* @returns
*/
public getTimestamp(): number
{
return Math.floor(new Date().getTime() / 1000);
}
/**
* mail in eft requires time be in a specific format
* @returns current time in format: 00:00 (hh:mm)
*/
public getTimeMailFormat(): string
{
const date = new Date();
const hours = `0${date.getHours()}`.substr(-2);
const minutes = `0${date.getMinutes()}`.substr(-2);
return `${hours}:${minutes}`;
}
/**
* Mail in eft requires date be in a specific format
* @returns current date in format: 00.00.0000 (dd.mm.yyyy)
*/
public getDateMailFormat(): string
{
const date = new Date();
const day = `0${date.getDate()}`.substr(-2);
const month = `0${date.getMonth() + 1}`.substr(-2);
return `${day}.${month}.${date.getFullYear()}`;
}
/**
* Convert hours into seconds
* @param hours hours to convert to seconds
* @returns number
*/
public getHoursAsSeconds(hours: number): number
{
return hours * 3600;
}
}