@i-novus/ui-core
Version:
Базовые UI компоненты
30 lines (29 loc) • 1.16 kB
JavaScript
import dayjs from 'dayjs';
/**
* Функция округляет дату до необходимой точности (отрезает лишнюю часть)
* Н.р. если dateAccuracy="day", то останется только дата, а время будет обнулено
* @param {Date | Dayjs | null | undefined} value - Дата
* @param {string} dateAccuracy - точность: month - округление до месяца (число будет равно 1, а время обнулено), day - округление до дня, minute - до минут, full - без округления
* @return {Dayjs | null}
*/
export const cutDateByAccuracy = (value, dateAccuracy) => {
if (!value) {
return null;
}
const date = dayjs(value);
if (!date.isValid()) {
return null;
}
switch (dateAccuracy) {
case 'month':
return date.startOf('month');
case 'day':
return date.startOf('day');
case 'minute':
return date.startOf('minute');
case 'full':
return date;
default:
return date;
}
};