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 }); }