Вы можете создать эффект, который вызывает setTimeout
каждую минуту, а при отображении времени просто вычитайте из даты.
Вы также должны сделать для этого отдельный компонент, так что если вы используете его внутри компонент, он не будет перерисовывать компонент дырки «каждую минуту», а будет перерисовывать только текст «х минут с момента последнего изменения»
const [fakeCurrentDate, setFakeCurrentDate] = useState(new Date()) // default value can be anything you want
useEffect(() => {
setTimeout(() => setFakeCurrentDate(new Date()), 60000)
}, [fakeCurrentDate])
...
{/* display time passed since*/}
<div>{fakeCurrentDate - modifiedDate}</div>
Работает codesandbox (вам нужно подождать минута, чтобы увидеть изменения)
Но, как сказал Стерлинг Арчер в комментариях, это хорошо? Ну ... кто знает?
Совет
Другой подход для этого будет показать сообщение Updated at XX:XX time
вместо того, чтобы показывать пользователю, сколько прошло минут. Но это гораздо больше о UX, чем технология