forked from github/plane
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
export const timeAgo = (time: any) => {
|
|
switch (typeof time) {
|
|
case "number":
|
|
break;
|
|
case "string":
|
|
time = +new Date(time);
|
|
break;
|
|
case "object":
|
|
if (time.constructor === Date) time = time.getTime();
|
|
break;
|
|
default:
|
|
time = +new Date();
|
|
}
|
|
};
|
|
|
|
/**
|
|
* @description Returns date and month, if date is of the current year
|
|
* @description Returns date, month adn year, if date is of a different year than current
|
|
* @param {string} date
|
|
* @example renderFullDate("2023-01-01") // 1 Jan
|
|
* @example renderFullDate("2021-01-01") // 1 Jan, 2021
|
|
*/
|
|
|
|
export const renderFullDate = (date: string): string => {
|
|
if (!date) return "";
|
|
|
|
const months: string[] = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
|
|
|
|
const currentDate: Date = new Date();
|
|
const [year, month, day]: number[] = date.split("-").map(Number);
|
|
|
|
const formattedMonth: string = months[month - 1];
|
|
const formattedDay: string = day < 10 ? `0${day}` : day.toString();
|
|
|
|
if (currentDate.getFullYear() === year) return `${formattedDay} ${formattedMonth}`;
|
|
else return `${formattedDay} ${formattedMonth}, ${year}`;
|
|
};
|