dress/resources/js/lib/formatters.ts

47 lines
1.2 KiB
TypeScript

export const formatTime = (date: Date) => {
return date.toLocaleTimeString('id-ID', {
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
});
};
export const formatDate = (date: Date | string | undefined) => {
if (!date) {
return '-';
}
const parsedDate = date instanceof Date ? date : new Date(date);
if (isNaN(parsedDate.getTime())) {
return '-';
}
return parsedDate.toLocaleDateString('id-ID', {
weekday: 'long',
day: 'numeric',
month: 'long',
year: 'numeric',
});
};
export const formatCurrency = (value: number) => {
return new Intl.NumberFormat('id-ID', {
style: 'currency',
currency: 'IDR',
minimumFractionDigits: 0,
maximumFractionDigits: 0,
}).format(value);
};
export const formatShortCurrency = (value: number) => {
if (value >= 1_000_000_000) return `${(value / 1_000_000_000).toFixed(1)}M`;
if (value >= 1_000_000) return `${(value / 1_000_000).toFixed(1)}jt`;
if (value >= 1_000) return `${(value / 1_000).toFixed(0)}rb`;
return String(value);
}
export const formatNumber = (value: number) => {
return new Intl.NumberFormat('id-ID').format(value);
};