Как создать свой вариант конструктора Date?
Знатно накосячил из-за невнимательности. 
тоже верные варианты))
Тут такое дело, встроеная 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(); будет содержать время клиента
Так?
snippet