const server_date = new ServerDate();
.const methodts = ["getDate", "getDay", "getFullYear", "getHours", "getMilliseconds", "getMinutes", "getMonth", "getSeconds", "getTime", "getTimezoneOffset", "getUTCDate", "getUTCDay", "getUTCFullYear", "getUTCHours", "getUTCMilliseconds", "getUTCMinutes", "getUTCMonth", "getUTCSeconds", "getYear", "setDate", "setFullYear", "setHours", "setMilliseconds", "setMinutes", "setMonth", "setSeconds", "setTime", "setUTCDate", "setUTCFullYear", "setUTCHours", "setUTCMilliseconds", "setUTCMinutes", "setUTCMonth", "setUTCSeconds", "setYear", "toDateString", "toGMTString", "toISOString", "toJSON", "toLocaleDateString", "toLocaleString", "toLocaleTimeString", "toSource", "toString", "toTimeString", "toUTCString", "valueOf"];
function ServerDate() {
let server_time_offset = 0;
const date = new Date()
methodts.forEach(method => {
this[method] = (...args) => {
date.setTime(Date.now() - server_time_offset);
return date[method](...args);
}
});
// !!!!! заремарим пока эту часть
// fetch("url роутера на сервере отдающего время в миллисекундах")
// .then((response) => {
// return response.json();
// })
// .then((data) => {
// server_time_offset = Date.now() - data.time;
// })
// а для эмуляции задержки получения даты от сервера сделаем это
setTimeout(() => {
server_time_offset = 3000; // 3 секунды
}, 1000)
}
const server_date = new ServerDate();
// сразу после инициализации в date будет время клиента
console.log(server_date.getTime());
// но когда прийдут данные с сервера, то время в date измениться
setInterval(() => {
console.log(server_date.getTime());
}, 1000)
внезапно оказывается, что можно создавать копии объекта new Date() возвращающие время с твоей поправкой
date.setTime(date.getTime() - server_time_offset); server_date = date;
const date = new Date()
ведет себя не точно так же??? var str = `tes
ttt`;
var str1 = str.replace(/[\n\r]+/g,''); // удаляем все пробельные символы (переход на новую строку и возврат каретки)
console.log(str.length);
console.log(str1.length);
То и имелось ввиду. А почему вы отдаете предпочтение латинизмам против англицизмов? Чем они лучше? И пусть "заремарить" не признан и является жаргонным у доморощенных программистов, но в свое время тоже самое можно было сказать и про слово "комментарий". Почему бы вместо "комментарий" не использовать действительно русское слово "примечание", так сказать для чистоты Русского языка?
Напишите ES6 класс, с которым можно делать и так
const a = new MyClass()
и такconst a = MyClass()
Ну и еще напишите класс
MyClass
на прототипах, с которым можно было бы писать такclass MyExtendClass extends MyClass {...}
, ведь именно в этом контексте было сказано чтоDate
классом не является.