102 lines
2.5 KiB
TypeScript
Executable File
102 lines
2.5 KiB
TypeScript
Executable File
const splitRoutePath = (routePath: string): string[] => {
|
|
const routeParts = routePath.split('/').filter((part) => part !== '')
|
|
|
|
const routeArray: string[] = []
|
|
let currentRoute = ''
|
|
|
|
for (const part of routeParts) {
|
|
currentRoute += `/${part}`
|
|
routeArray.push(currentRoute)
|
|
}
|
|
|
|
return routeArray
|
|
}
|
|
const getMonthName = (monthNumber: number) => {
|
|
const months = [
|
|
'Januari',
|
|
'Februari',
|
|
'Maret',
|
|
'April',
|
|
'Mei',
|
|
'Juni',
|
|
'Juli',
|
|
'Agustus',
|
|
'September',
|
|
'Oktober',
|
|
'November',
|
|
'Desember'
|
|
]
|
|
return months[monthNumber - 1] || ''
|
|
}
|
|
const getMonthNameShort = (monthNumber: number) => {
|
|
const months = [
|
|
'Jan',
|
|
'Feb',
|
|
'Mar',
|
|
'Apr',
|
|
'Mei',
|
|
'Jun',
|
|
'Jul',
|
|
'Agu',
|
|
'Sep',
|
|
'Okt',
|
|
'Nov',
|
|
'Des'
|
|
]
|
|
return months[monthNumber - 1] || ''
|
|
}
|
|
const getMonthNumber = (monthName: string) => {
|
|
const months = [
|
|
'Januari',
|
|
'Februari',
|
|
'Maret',
|
|
'April',
|
|
'Mei',
|
|
'Juni',
|
|
'Juli',
|
|
'Agustus',
|
|
'September',
|
|
'Oktober',
|
|
'November',
|
|
'Desember'
|
|
]
|
|
return months.indexOf(monthName) + 1
|
|
}
|
|
|
|
const reformatDate = (inputDate: string, originalFormat: string, targetFormat: string): string => {
|
|
// Parsing tanggal dari format asli
|
|
const originalDate = parseDate(inputDate, originalFormat)
|
|
|
|
// Format tanggal dalam format yang diinginkan
|
|
const formattedDate = formatDateToString(originalDate, targetFormat)
|
|
|
|
return formattedDate
|
|
}
|
|
|
|
const parseDate = (inputDate: string, format: string): Date => {
|
|
// Pisahkan tanggal, bulan, dan tahun dari input berdasarkan format
|
|
const parts = inputDate.split(/[^0-9]+/)
|
|
const formatParts = format.split(/[^a-zA-Z]+/)
|
|
|
|
// Buat objek tanggal baru dengan mengambil nilai dari format yang diberikan
|
|
const dateValues: any = {}
|
|
for (let i = 0; i < formatParts.length; i++) {
|
|
if (formatParts[i]) {
|
|
dateValues[formatParts[i]] = parseInt(parts[i], 10)
|
|
}
|
|
}
|
|
|
|
// Format tanggal dalam format yang diinginkan
|
|
return new Date(dateValues['yyyy'], dateValues['MM'] - 1, dateValues['dd'])
|
|
}
|
|
|
|
const formatDateToString = (date: Date, format: string): string => {
|
|
const day = date.getDate().toString().padStart(2, '0')
|
|
const month = (date.getMonth() + 1).toString().padStart(2, '0')
|
|
const year = date.getFullYear().toString()
|
|
|
|
// Ganti placeholder dengan nilai tanggal, bulan, dan tahun
|
|
return format.replace('yyyy', year).replace('MM', month).replace('dd', day)
|
|
}
|
|
export { reformatDate, splitRoutePath, getMonthName, getMonthNameShort, getMonthNumber }
|