31 lines
919 B
TypeScript
31 lines
919 B
TypeScript
|
|
import { format } from "date-fns";
|
||
|
|
import { pl } from "date-fns/locale";
|
||
|
|
|
||
|
|
export function formatDate(date: Date): string {
|
||
|
|
return format(date, "d MMMM yyyy, HH:mm", { locale: pl });
|
||
|
|
}
|
||
|
|
|
||
|
|
export function formatDateShort(date: Date): string {
|
||
|
|
return format(date, "d MMM yyyy", { locale: pl });
|
||
|
|
}
|
||
|
|
|
||
|
|
export function formatDuration(seconds: number): string {
|
||
|
|
const h = Math.floor(seconds / 3600);
|
||
|
|
const m = Math.floor((seconds % 3600) / 60);
|
||
|
|
const s = Math.floor(seconds % 60);
|
||
|
|
if (h > 0) {
|
||
|
|
return `${h}:${String(m).padStart(2, "0")}:${String(s).padStart(2, "0")}`;
|
||
|
|
}
|
||
|
|
return `${m}:${String(s).padStart(2, "0")}`;
|
||
|
|
}
|
||
|
|
|
||
|
|
export function formatDistance(meters: number): string {
|
||
|
|
return `${(meters / 1000).toFixed(2)} km`;
|
||
|
|
}
|
||
|
|
|
||
|
|
export function formatPace(secPerKm: number): string {
|
||
|
|
const m = Math.floor(secPerKm / 60);
|
||
|
|
const s = Math.round(secPerKm % 60);
|
||
|
|
return `${m}:${String(s).padStart(2, "0")} /km`;
|
||
|
|
}
|