shlink-web-client/src/utils/helpers/date.ts

22 lines
738 B
TypeScript
Raw Normal View History

import { format, formatISO } from 'date-fns';
2020-08-26 21:03:23 +03:00
import { OptionalString } from '../utils';
type DateOrString = Date | string;
type NullableDate = DateOrString | null;
export const isDateObject = (date: DateOrString): date is Date => typeof date !== 'string';
const formatDateFromFormat = (date?: NullableDate, theFormat?: string): OptionalString => {
if (!date || !isDateObject(date)) {
return date;
}
return theFormat ? format(date, theFormat) : formatISO(date);
};
export const formatDate = (format = 'yyyy-MM-dd') => (date?: NullableDate) => formatDateFromFormat(date, format);
2020-08-22 19:32:48 +03:00
export const formatIsoDate = (date?: NullableDate) => formatDateFromFormat(date, undefined);
export const formatInternational = formatDate();