68 lines
No EOL
2.6 KiB
TypeScript
68 lines
No EOL
2.6 KiB
TypeScript
import {useAuthStore} from "@/stores/auth.store.ts";
|
|
import { DateTime } from "luxon";
|
|
|
|
export function dateFormatter(date: Date = new Date()): string {
|
|
return `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`;
|
|
}
|
|
|
|
export function extractTime(dateTimeString: string, extractTime: boolean = false){
|
|
const date = new Date(dateTimeString);
|
|
if (extractTime) {
|
|
const hours = String(date.getHours()).padStart(2, '0');
|
|
const minutes = String(date.getMinutes()).padStart(2, '0');
|
|
return `${hours}:${minutes}`;
|
|
}
|
|
return date.getFullYear() + '-' + String(date.getMonth() + 1).padStart(2, '0') + '-' + String(date.getDate()).padStart(2, '0');
|
|
};
|
|
|
|
export function getTimeDiff(startTime: Date, endTime: Date) {
|
|
const diffInMilliseconds = Math.abs(startTime.getTime() - endTime.getTime());
|
|
|
|
const hours = Math.floor((diffInMilliseconds % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
|
const minutes = Math.floor((diffInMilliseconds % (1000 * 60 * 60)) / (1000 * 60));
|
|
|
|
const formattedHours = String(hours).padStart(2, '0');
|
|
const formattedMinutes = String(minutes).padStart(2, '0');
|
|
|
|
return `${formattedHours}:${formattedMinutes}`;
|
|
}
|
|
|
|
export function getHoursMinutesFromString(timeString: string): Date {
|
|
const [ h, m ] = timeString.split(":");
|
|
const ms = new Date().setHours(h,m);
|
|
return new Date(ms)
|
|
}
|
|
|
|
export function convertToUserTimezoneString(dateString: string): string {
|
|
const auth = useAuthStore();
|
|
const timezone = auth.userData.timezone;
|
|
const dateTime = DateTime.fromISO(dateString).setZone(timezone);
|
|
return dateTime.toISO();
|
|
}
|
|
|
|
export function convertToUserTimezoneDate(dateString: string): Date {
|
|
const auth = useAuthStore();
|
|
const timezone = auth.userData.timezone;
|
|
const dateTime = DateTime.fromISO(dateString).setZone(timezone);
|
|
return dateTime.toJSDate();
|
|
}
|
|
|
|
export function convertToUTCString(dateString: string): string {
|
|
const auth = useAuthStore();
|
|
const timezone = auth.userData.timezone;
|
|
const dateTime = DateTime.fromISO(dateString, { zone: timezone });
|
|
return dateTime.toUTC().toISO();
|
|
}
|
|
|
|
export function extractTimeUTC(timeString: string) {
|
|
const [hours, minutes] = timeString.split(':').map(Number);
|
|
const dt = DateTime.now()
|
|
.set({ hour: hours, minute: minutes, second: 0, millisecond: 0 })
|
|
.toUTC();
|
|
return dt.toFormat("HH:mm");
|
|
}
|
|
|
|
export function formatTime(date: Date): string {
|
|
const luxonDate = DateTime.fromJSDate(date);
|
|
return luxonDate.toLocaleString({ hour: 'numeric', minute: 'numeric', hour12: false });
|
|
} |