init
This commit is contained in:
41
worklenz-frontend/src/utils/calculate-time-difference.ts
Normal file
41
worklenz-frontend/src/utils/calculate-time-difference.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import {
|
||||
differenceInSeconds,
|
||||
differenceInMinutes,
|
||||
differenceInHours,
|
||||
differenceInDays,
|
||||
differenceInWeeks,
|
||||
differenceInMonths,
|
||||
differenceInYears,
|
||||
formatDistanceToNow,
|
||||
} from 'date-fns';
|
||||
import { enUS, es, pt } from 'date-fns/locale';
|
||||
import { getLanguageFromLocalStorage } from './language-utils';
|
||||
|
||||
export function calculateTimeDifference(timestamp: string | Date): string {
|
||||
const date = typeof timestamp === 'string' ? new Date(timestamp) : timestamp;
|
||||
const localeString = getLanguageFromLocalStorage();
|
||||
const locale = localeString === 'en' ? enUS : localeString === 'es' ? es : pt;
|
||||
const now = new Date();
|
||||
|
||||
const diffInSeconds = differenceInSeconds(now, date);
|
||||
if (diffInSeconds < 60) {
|
||||
return 'Just now';
|
||||
}
|
||||
|
||||
const distanceFunctions = [
|
||||
differenceInYears,
|
||||
differenceInMonths,
|
||||
differenceInWeeks,
|
||||
differenceInDays,
|
||||
differenceInHours,
|
||||
differenceInMinutes,
|
||||
];
|
||||
|
||||
for (const distanceFunction of distanceFunctions) {
|
||||
if (distanceFunction(now, date) > 0) {
|
||||
return formatDistanceToNow(date, { addSuffix: true, locale });
|
||||
}
|
||||
}
|
||||
|
||||
return 'Just now';
|
||||
}
|
||||
Reference in New Issue
Block a user