`Date.now()` gives milliseconds since the epoch, while Solidity's `block.timestamp` is in seconds — divide or multiply by 1000 at the boundary.
const nowSec = Math.floor(Date.now() / 1000); const unlock = new Date(unlockSec * 1000).toLocaleString();
`setTimeout` and `setInterval` are best-effort; a busy thread delays them. Clear intervals when a component unmounts.