У меня есть дневник в модале DatePicker, который я пишу в React с крючками. Я хочу отобразить сегодняшнюю дату посередине и отсчитывать назад, восходя и вперед, понижаясь с сегодняшнего дня. Мне также нужно, чтобы мои даты переносились на следующий или предыдущий месяц и начинались или заканчивались на правильном количестве дней. Мой html выглядит так
<div className={'dateField'} ref={dayRef}>
<div>{getDayNumber(-3)}</div>
<div>{getDayNumber(-2)}</div>
<div>{getDayNumber(-1)}</div>
{/* TODAY */}
<div>{date.getDate()}</div>
{/* END TODAY */}
<div>{getDayNumber(1)}</div>
<div>{getDayNumber(2)}</div>
<div>{getDayNumber(3)}</div>
</div>
У меня есть функция getDayNumber, но она ведет себя очень странно. Он будет считать назад, но не вперед, и устанавливает сегодняшнюю дату минус 1 так же, как сегодняшнюю дату. Я думаю, это потому, что он как-то переключается на количество дней с индексом 0? Как я могу изменить это обратно на номер дня?
const getDayNumber = (dayNumber) => {
var newDate = new Date(date.setDate(date.getDate() - dayNumber));
console.log('NEW DATE NUMBER!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!', newDate.getDate());
return newDate.getDate();
};
У меня также есть проблема, из-за которой передача различных чисел в getDayNumber () не работает - я думаю, это потому, что я сбрасываю центральный объект даты with setDate ()?:
const [date, setMyDate] = useState (new Date ());