pos-dashboard-v2/src/utils/transform.ts

75 lines
2.2 KiB
TypeScript
Raw Normal View History

2025-08-07 14:31:42 +07:00
export const formatCurrency = (amount: number) => {
return new Intl.NumberFormat('id-ID', {
style: 'currency',
currency: 'IDR',
minimumFractionDigits: 0
}).format(amount)
}
2025-08-08 17:59:39 +07:00
export const formatShortCurrency = (num: number): string => {
2025-08-11 13:48:24 +07:00
const formatNumber = (value: number, suffix: string) => {
const str = value.toFixed(2).replace(/\.00$/, '')
return str + suffix
2025-08-08 17:59:39 +07:00
}
2025-08-11 13:48:24 +07:00
const absNum = Math.abs(num)
let result: string
if (absNum >= 1_000_000) {
result = formatNumber(absNum / 1_000_000, 'M')
} else if (absNum >= 1_000) {
result = formatNumber(absNum / 1_000, 'k')
} else {
result = absNum.toString()
}
2025-08-12 21:29:24 +07:00
return num < 0 ? '-' + result : result
2025-08-08 17:59:39 +07:00
}
2025-08-10 22:56:04 +07:00
export const formatDate = (dateString: any) => {
return new Date(dateString).toLocaleDateString('id-ID', {
2025-08-07 14:31:42 +07:00
day: 'numeric',
2025-08-10 22:56:04 +07:00
month: 'short',
year: 'numeric'
2025-08-07 14:31:42 +07:00
})
}
2025-08-07 23:48:31 +07:00
2025-08-11 02:12:19 +07:00
export const formatDateDDMMYYYY = (dateString: Date | string) => {
const date = new Date(dateString)
2025-08-14 03:09:00 +07:00
date.setHours(0, 0, 0, 0)
2025-08-08 17:59:39 +07:00
const day = String(date.getDate()).padStart(2, '0')
const month = String(date.getMonth() + 1).padStart(2, '0')
const year = date.getFullYear()
return `${day}-${month}-${year}`
}
2025-08-11 02:12:19 +07:00
2025-09-19 16:10:52 +07:00
export const formatDateYYYYMMDD = (dateString: Date | string) => {
2025-08-14 03:09:00 +07:00
const date = new Date(dateString)
2025-09-19 16:10:52 +07:00
date.setHours(0, 0, 0, 0)
2025-08-14 03:09:00 +07:00
const day = String(date.getDate()).padStart(2, '0')
const month = String(date.getMonth() + 1).padStart(2, '0')
const year = date.getFullYear()
return `${year}-${month}-${day}`
}
2025-09-19 16:10:52 +07:00
export const formatForInputDate = (dateString: Date | string) => {
const date = new Date(dateString)
const day = String(date.getDate()).padStart(2, '0')
const month = String(date.getMonth() + 1).padStart(2, '0')
const year = date.getFullYear()
return `${year}-${month}-${day}`
}
2025-08-14 03:09:00 +07:00
2025-08-11 02:12:19 +07:00
export const formatDatetime = (dateString: string | number | Date) => {
const date = new Date(dateString)
const day = String(date.getDate()).padStart(2, '0')
const month = date.toLocaleString('id-ID', { month: 'long' }) // Aug
const year = date.getFullYear()
const hours = String(date.getHours()).padStart(2, '0')
const minutes = String(date.getMinutes()).padStart(2, '0')
return `${day} ${month} ${year} ${hours}:${minutes}`
}