Problemem jest dokładność czasu zwracanego przez JS - co do milisekundy. W ten sposób masz bardzo nikłe szanse, że now==future. Zresztą sprawdź sam:
function timer() {
const future = new Date(2023, 9, 27, 18, 53, 36).getTime(); // zmień na datę z przyszłości
let now;
setInterval(() => {
now = new Date().getTime();
console.log(future-now); // ile pozostało do future
if(now == future) {
console.log("ok");
}
}, 1000)
}
timer();
Spróbuj tak:
function timer() {
const future = new Date(2023, 9, 27, 18, 53, 36).getTime(); // zmień na datę z przyszłości
let now;
setInterval(() => {
now = new Date().getTime();
if(now >= future) {
console.log("ok");
}
}, 1000)
}
timer();