// массив цитат
const quoteCollection = [
{id: 0, date: '1919-06-01 00:54:23', source: '1 июня 1919',
text: 'Цитата 1'},
{id: 1, date: '1916-08-04 00:54:48', source: '4 августа 1916',
text: 'Цитата 2'},
{id: 2, date: '1916-09-09 03:54:48', source: 'Явление Луны, 9 сентября 1914',
text: 'Цитата 3'},
{id: 3, date: '1946-11-07 00:55:51', source: 'Памяти Александра Блока, 7 ноября 1946',
text: 'Цитата 4'},
{id: 4, date: '1916-12-12 00:56:20', source: '12 декабря 1916',
text: 'Цитата 5'},
{id: 5, date: '1946-05-13 00:56:44', source: '«Наяву», 13 мая 1946',
text: 'Цитата 6'},
{id: 6, date: '1916-02-18 00:57:50', source: '18 февраля 1916',
text: 'Цитата 7'},
];
const updateQuote = () => {
const quote = document.querySelector('.quote');
const now = new Date();
const soon = quoteCollection
.map(item => {
// создаем копию элемента
const newItem = { ...item };
// меняем у даты год на текущий и записываем в копию
newItem.date = new Date(item.date.split(' ')[0]).setFullYear(now.getFullYear());
return newItem;
})
// сортируем так чтобы в начале был самый близкий по времени елемент
.sort((a, b) => Math.abs(a.date - now) - Math.abs(b.date - now))
// возвращаем первый елемент массива
.shift();
quote.innerHTML = `${soon.text}<br><br><b>${soon.source}</b>`;
};
updateQuote();
setInterval(updateQuote, 6000000);
А потом, я просто вывел на печать даты по которым должно сортироваться, и увидел что они все одинаковые.