Теоретически каждый вызов функции Date()
должен возвращать текущую дату и время. Я только что протестировал это на узле v13.13.0 за полночь, и он работал отлично.
Вы вызываете Date()
один раз при запуске сервера, а затем сохраняете это значение в переменной?
If вам нужно вызвать функцию обновления в полночь, вы можете использовать:
function dailyUpdate() { console.log(new Date()) }
midnight = new Date().getTime()
millisecondsToMidnight = (
midnight
- new Date().getTime()
+ midnight.getTimezoneOffset()*60*1000
)
setTimeout(() => {
dailyUpdate();
setInterval(() => {
dailyUpdate()
}, 24*60*60*1000)
}, millisecondsToMidnight)