@cnamts/vue-dot
Version:
Implementation of our Design System for the French Health Insurance
29 lines (20 loc) • 758 B
text/typescript
import dayjs from 'dayjs';
import customParseFormat from 'dayjs/plugin/customParseFormat';
dayjs.extend(customParseFormat);
/** Parse a date with dayjs */
export function parseDate(value: string, format = 'DD/MM/YYYY'): dayjs.Dayjs {
// Currently dayjs doesn't work well with timezone offsets and parsing
// To fix this, we set the hour based on timezone offset
// so we don't go back or forward multiple hours
/** Timezone offset in minutes */
const timezoneOffset = (new Date()).getTimezoneOffset();
let offset = '00';
if (timezoneOffset > 0) {
offset = '14';
} else {
offset = '04';
}
const dateWithTime = `${value} ${offset}:00:00`;
const formatWithTime = `${format} HH:mm:ss`;
return dayjs(dateWithTime, formatWithTime, true);
}