На сайте есть задания, человек начинает выполнять задание в определенный момент времени, у него есть дедлайн, допустим 1 день или 6 часов.
Сервер работает по Москве, я хочу рассчитать разницу между текущим временем (МСК) и тем временем когда ему нужно завершить задание (МСК).
Получить в js всегда МСК время мне удалось вот так
function getMoscowDate() {
let d = new Date();
let utc = d.getTime() + (d.getTimezoneOffset() * 60000);
return new Date(utc + (3600000*3));
}
Дата окончания у меня подается в таком формате
Sat 14 Nov 2020 11:59:41 GMT+0300
В итоге захожу на сайт и пытаюсь создать эту дату (new Date(Date.parse(endtime))), выдает допустим на час позже от мск, допустим если у юзера время Киева +2.
Функция которая высчитывает разницу
funcjs['getTimeRemaining'] = function (endtime) {
var t = Date.parse(endtime) - Date.parse(getMoscowDate());
var seconds = Math.floor((t / 1000) % 60);
var minutes = Math.floor((t / 1000 / 60) % 60);
var hours = Math.floor((t / (1000 * 60 * 60)) % 24);
var days = Math.floor(t / (1000 * 60 * 60 * 24));
return {
'total': t > 0 ? t : 0,
'days': days > 0 ? days : 0,
'hours': hours > 0 ? hours : 0,
'minutes': minutes > 0 ? minutes : 0,
'seconds': seconds > 0 ? seconds : 0
};
}
Вообщем надеюсь понятно, что нужно получить разницу между временем текущим и будущем по мск, потому что все разные часовые пояса это путает, не понятно как это сделать.