let currentDate = new Date();
CurrentDate связан со временем системы, поэтому, если время системы неверно, currentDate будет неправильным.
Вы можете использовать API атомных часов, например World Clock:
http://worldclockapi.com/api/json/est/now
{
"$id":"1", "currentDateTime":"2018-10-26T05:27-04:00", "utcOffset":"-04:00:00",
"isDayLightSavingsTime":true, "dayOfTheWeek":"Friday",
"timeZoneName":"Eastern Standard Time", "currentFileTime":131850052212461578,
"ordinalDate":"2018-299", "serviceResponse":null
}
Единственным недостатком этого является то, что для этого потребуется сделать вызов REST. Таким образом, будет задержка между вызовом JavaScript и получением ответа. Вы также можете открыть свою собственную конечную точку на стороне сервера, если у вас есть контроль над этим.
Если HTTP-запрос является опцией:
let dateNow;
fetch('http://currentmillis.com/time/minutes-since-unix-epoch.php')
.then(res => res.text())
.then(min => {
dateNow = new Date(parseInt(min) * 1000 * 60);
console.log(dateNow);
});
API возвращает минуты, прошедшие с эпохи, по соображениям производительности. Преобразуйте его в миллисекунды, а затем создайте объект даты