47 lines
1.2 KiB
TypeScript
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);
|
|
};
|