ipsased
Version:
UI toolkit monorepo containing a React component library, UI utilities, a drag-and-drop library, and more
38 lines (32 loc) • 1.06 kB
text/typescript
// The following utils work on a “month” as a unique numerical value
// representing the number of months since the unix epoch (jan 1970)
const START_YEAR = 1970;
const MONTH_NAMES = [
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December',
];
const getYearFromDate = (date: Date) => date.getFullYear() - START_YEAR;
export const getMonthFromDate = (date: Date) =>
date.getMonth() + (getYearFromDate(date) * 12); // prettier-ignore
export const getYearFromMonth = (month: number) => Math.floor(month / 12) + START_YEAR;
export const getMonthNameFromMonth = (month: number): string => {
let index = month % 12;
if (Number.isNaN(index)) return '';
if (index < 0) index = 12 + index;
return MONTH_NAMES[index];
};
export const getMonthAbbreviationFromMonth = (month: number) => {
const monthName = getMonthNameFromMonth(month);
if (monthName === 'September') return 'Sept';
return monthName.substring(0, 3);
};