@storm-stack/date-time
Version:
This package includes a DateTime class, various utility functions for working with dates and times, and a number of formatting options.
24 lines (23 loc) • 868 B
JavaScript
import { format } from "@formkit/tempo";
import { EMPTY_STRING } from "@storm-stack/types/utility-types/base";
import { DEFAULT_DATE_FORMAT } from "../constants.mjs";
import { StormDate } from "../storm-date.mjs";
import { StormDateTime } from "../storm-date-time.mjs";
export const formatDate = (dateTime, options = {}) => {
let value = dateTime;
if (!dateTime && options.returnEmptyIfNotSet) {
return EMPTY_STRING;
}
if ((!dateTime || StormDate.validate(dateTime) !== null) && options.returnEmptyIfInvalid) {
return EMPTY_STRING;
}
if (!dateTime || StormDate.validate(dateTime) !== null) {
value = StormDate.current();
}
return format({
date: value,
format: options.format || DEFAULT_DATE_FORMAT,
locale: options.locale,
tz: StormDateTime.isDateTime(value) ? value.timeZoneId : StormDateTime.getDefaultTimeZone()
});
};