24 lines
642 B
TypeScript
24 lines
642 B
TypeScript
|
|
import { DateTime } from "luxon";
|
||
|
|
|
||
|
|
const transformDate = (inputDate: string, addSuffix = false): string => {
|
||
|
|
const date = DateTime.fromISO(inputDate)
|
||
|
|
const day = date.day
|
||
|
|
const suffix = addSuffix ? getDaySuffix(day) : ''
|
||
|
|
return date.toFormat("MMMM") + ` ${ day }${ suffix }, ` + date.toFormat("yyyy");
|
||
|
|
}
|
||
|
|
|
||
|
|
const getDaySuffix = (day: number): string => {
|
||
|
|
if (day >= 11 && day <= 13) return "th";
|
||
|
|
switch (day % 10) {
|
||
|
|
case 1:
|
||
|
|
return "st";
|
||
|
|
case 2:
|
||
|
|
return "nd";
|
||
|
|
case 3:
|
||
|
|
return "rd";
|
||
|
|
default:
|
||
|
|
return "th";
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
export default transformDate;
|