Files
beenvoice/apps/mobile/lib/format.ts
T

44 lines
1.0 KiB
TypeScript

import { formatCalendarDate } from "@beenvoice/domain/time-zone";
export function formatCurrency(amount: number, currency = "USD") {
return new Intl.NumberFormat("en-US", {
style: "currency",
currency,
maximumFractionDigits: 2,
}).format(amount);
}
export function formatDate(date: Date | string) {
return formatCalendarDate(date, {
month: "short",
day: "numeric",
year: "numeric",
});
}
export function formatShortDate(date: Date | string) {
return formatCalendarDate(date, {
month: "short",
day: "numeric",
});
}
export function formatDateTime(date: Date | string) {
return new Date(date).toLocaleString("en-US", {
month: "short",
day: "numeric",
hour: "numeric",
minute: "2-digit",
});
}
export function formatDuration(seconds: number) {
const h = Math.floor(seconds / 3600);
const m = Math.floor((seconds % 3600) / 60);
const s = seconds % 60;
if (h > 0) {
return `${h}:${String(m).padStart(2, "0")}:${String(s).padStart(2, "0")}`;
}
return `${m}:${String(s).padStart(2, "0")}`;
}