shlink-web-client/src/utils/dates/Time.tsx

19 lines
620 B
TypeScript
Raw Normal View History

2023-02-18 13:11:01 +03:00
import { format as formatDate, formatDistance, getUnixTime, parseISO } from 'date-fns';
import { isDateObject, now, STANDARD_DATE_AND_TIME_FORMAT } from '../helpers/date';
export interface TimeProps {
date: Date | string;
format?: string;
relative?: boolean;
}
export const Time = ({ date, format = STANDARD_DATE_AND_TIME_FORMAT, relative = false }: TimeProps) => {
const dateObject = isDateObject(date) ? date : parseISO(date);
return (
<time dateTime={`${getUnixTime(dateObject)}000`}>
{relative ? `${formatDistance(now(), dateObject)} ago` : formatDate(dateObject, format)}
</time>
);
};