useTodayDate
Хук для работы с текущей датой с возможностью автоматического обновления при смене календарного дня.
Практический пример
const TodayTracker = () => {
const today = useTodayDate(true); // Автообновление при смене дня
const [counter, setCounter] = useState(0);
// Сброс счетчика каждый день
useEffect(() => {
setCounter(0);
}, [today]);
return (
<div>
<p>Сегодня: {format(today, 'dd.MM.yyyy')}</p>
<p>Действий сегодня: {counter}</p>
<button onClick={() => setCounter((c) => c + 1)}>Выполнить действие</button>
</div>
);
};
Особенности работы
Параметры
Принимает единственный параметр listenDayChangesForUpdate
, который при true
:
- Обновляет дату ровно в 00:00 следующего дня.
- Следит за изменением видимости вкладки (Page Visibility API ↗).
- Автоматически корректирует время при возврате на вкладку.
Возвращаемая дата
- Всегда содержит актуальные день/месяц/год.
- Время соответствует текущему системному времени.
- Оптимизирован для работы с “замороженными” вкладками.