баг-фикс завершён
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { api } from '../api.js';
|
||||
import { escapeHtml, showAlert, hideAlert } from '../utils.js';
|
||||
import { escapeHtml, formatLocalDate, showAlert, hideAlert } from '../utils.js';
|
||||
|
||||
const DAY_OPTIONS = [
|
||||
{ value: 1, label: 'Понедельник', shortLabel: 'Пн' },
|
||||
@@ -1473,24 +1473,36 @@ export async function initAcademicCalendar() {
|
||||
}
|
||||
|
||||
function previousIsoDate(value) {
|
||||
const date = new Date(`${value}T00:00:00Z`);
|
||||
date.setUTCDate(date.getUTCDate() - 1);
|
||||
return date.toISOString().slice(0, 10);
|
||||
const date = parseLocalIsoDate(value);
|
||||
date.setDate(date.getDate() - 1);
|
||||
return formatLocalDate(date);
|
||||
}
|
||||
|
||||
function enumerateDates(startIso, endIso) {
|
||||
const result = [];
|
||||
const current = new Date(`${startIso}T00:00:00Z`);
|
||||
const end = new Date(`${endIso}T00:00:00Z`);
|
||||
const current = parseLocalIsoDate(startIso);
|
||||
const end = parseLocalIsoDate(endIso);
|
||||
while (current <= end) {
|
||||
const iso = current.toISOString().slice(0, 10);
|
||||
const jsDay = current.getUTCDay();
|
||||
const iso = formatLocalDate(current);
|
||||
const jsDay = current.getDay();
|
||||
result.push({ iso, dayOfWeek: jsDay === 0 ? 7 : jsDay });
|
||||
current.setUTCDate(current.getUTCDate() + 1);
|
||||
current.setDate(current.getDate() + 1);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function parseLocalIsoDate(value) {
|
||||
const [year, month, day] = String(value).split('-').map(Number);
|
||||
const date = new Date(year, month - 1, day, 12);
|
||||
if (!year || !month || !day || Number.isNaN(date.getTime())
|
||||
|| date.getFullYear() !== year
|
||||
|| date.getMonth() !== month - 1
|
||||
|| date.getDate() !== day) {
|
||||
throw new TypeError('Ожидалась дата в формате ГГГГ-ММ-ДД');
|
||||
}
|
||||
return date;
|
||||
}
|
||||
|
||||
function groupBy(items, keyFn) {
|
||||
const grouped = new Map();
|
||||
items.forEach(item => {
|
||||
|
||||
Reference in New Issue
Block a user