Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия | |||
doc:1605:643.mgul.21010-10_13_01 [2024/01/04 15:04] aminaraon [checkDateRangeInRedis(formattedStartDate, formattedEndDate, keysArray)] |
doc:1605:643.mgul.21010-10_13_01 [2024/01/04 15:05] (текущий) aminaraon [checkDateRangeInRedis(formattedStartDate, formattedEndDate, keysArray)] |
||
---|---|---|---|
Строка 93: | Строка 93: | ||
return flag ? await sortedAndFilteredKeys(formattedStartDate, formattedEndDate) : filteredKeys; | return flag ? await sortedAndFilteredKeys(formattedStartDate, formattedEndDate) : filteredKeys; | ||
===== checkDateRangeInRedis(formattedStartDate, formattedEndDate, keysArray) ===== | ===== checkDateRangeInRedis(formattedStartDate, formattedEndDate, keysArray) ===== | ||
- | Шаг №1: Инициализация переменных, получение начальной и конечной временных меток из массива ключей | + | Шаг №1: Инициализация переменных, получение начальной и конечной временных меток из Redis |
const startDate = keysArray[0]; | const startDate = keysArray[0]; | ||
const endDate = keysArray[keysArray.length - 1]; | const endDate = keysArray[keysArray.length - 1]; | ||
- | Шаг №2: Расчет временной разницы в минутах между конечной датой массива и заданной начальной датой. | + | Шаг №2: Расчет временной разницы в минутах между конечной датой Redis и заданной начальной датой. |
let startDifference = moment(endDate).diff(moment(formattedStartDate), 'minutes'); | let startDifference = moment(endDate).diff(moment(formattedStartDate), 'minutes'); | ||
- | Шаг №3: Проверка, находится ли заданная начальная дата внутри или частично пересекается с временным диапазоном, представленным в массиве keysArray. | + | Шаг №3: Проверка, находится ли заданная начальная дата внутри или частично пересекается с временным диапазоном Redis. |
if (startDate <= formattedStartDate && formattedStartDate < endDate && Math.abs(startDifference) >= 5) { | if (startDate <= formattedStartDate && formattedStartDate < endDate && Math.abs(startDifference) >= 5) { | ||
// Если условие выполняется, возвращаем true, указывая на пересечение временных диапазонов. | // Если условие выполняется, возвращаем true, указывая на пересечение временных диапазонов. | ||
return true; | return true; | ||
} | } | ||
- | Шаг №4: Расчет временной разницы в минутах между заданной конечной датой массива и начальной датой. | + | Шаг №4: Расчет временной разницы в минутах между заданной конечной датой массива и начальной датой Redis. |
let endDifference = moment(formattedEndDate).diff(moment(startDate), 'minutes'); | let endDifference = moment(formattedEndDate).diff(moment(startDate), 'minutes'); | ||
Шаг №5: Если ни одно из условий не выполнилось, возвращаем false, указывая на отсутствие пересечения временных диапазонов, иначе true | Шаг №5: Если ни одно из условий не выполнилось, возвращаем false, указывая на отсутствие пересечения временных диапазонов, иначе true | ||
return formattedStartDate <= startDate && startDate < formattedEndDate && Math.abs(endDifference) >= 5; | return formattedStartDate <= startDate && startDate < formattedEndDate && Math.abs(endDifference) >= 5; |