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 ↗).
  • Автоматически корректирует время при возврате на вкладку.
  • Всегда содержит актуальные день/месяц/год.
  • Время соответствует текущему системному времени.
  • Оптимизирован для работы с “замороженными” вкладками.