Знатно накосячил из-за невнимательности.
тоже верные варианты))
Тут такое дело, встроеная Date не является классом как таковым, поэтому все неверные варианты убрал под спойлер
Был не прав, варианты рабочие)))
class ServerDate extends Date {
construcror(...args) {
super(...args);
if (args.length === 0) {
// если аргументов конструктора нет то получаем время от сервера
fetch("url роутера на сервере отдающего время в миллисекундах")
.then((response) => {
return response.json();
})
.then((data) => {
this.setTime(data.time)
})
}
}
}
const date = new ServerDate();
!!!!! возможно будет ругаться на
super(...args);
. Если да, то можно попробовать сделать так
class ServerDate extends Date {
construcror(...args) {
// super(...args);
if (args.length) {
this.setTime(Date.now());
}else{
// если аргументов конструктора нет то получаем время от сервера
fetch("url роутера на сервере отдающего время в миллисекундах")
.then((response) => {
return response.json();
})
.then((data) => {
this.setTime(data.time)
})
}
}
}
const date = new ServerDate();
console.log(date)
Верный вариант мы с вами сейчас сделаем в комментариях.
Но сразу предупреждаю, это откровенный костыль, не делайте так)))
!!!!! Кроме того, такие функции как Date.now() и ей подобные по прежнему будут работать со временем клиента
!!!!! А так же до тех пор пока идет запрос к серверу, дата полученная этим способом
const date = new ServerDate();
будет содержать время клиента