У меня есть дата заказа, которая приходит с сервера. Необходимо создать счетчик обработки заказа, который будет тикать каждую секунду, и если регламент закончился, то писать, что регламент вышел.
<div class="reglament"></div>
let dateNow = new Date();
// вывожу в удобном формате, т.к. потом используется при обработке заказа
Number.prototype.padLeft = function(base, chr) {
let len = (String(base || 10).length - String(this).length) + 1;
return len > 0 ? new Array(len).join(chr || '0') + this : this;
};
let dateNew = [
dateNow.getFullYear(), (dateNow.getMonth() + 1).padLeft(),
dateNow.getDate().padLeft(),
].join('-') + ' ' + [
dateNow.getHours().padLeft(),
dateNow.getMinutes().padLeft(),
dateNow.getSeconds().padLeft()
].join(':');
let dateStart = "2020-04-03";
let timeStart = "11:00:02";
let resStartDate = dateStart + ' ' + timeStart;
// получаем в миллисекундах
resStartDate = Date.parse(resStartDate);
dateNew = Date.parse(dateNew);
// получаю разницу
let difference = dateNew - resStartDate;
let getSeconds = difference / 1000;
let getMinutes = difference / 60000;
console.log(getSeconds);
// регламент в минутах
let reglamentStatic = Number('150');
let resReglament = reglamentStatic - getMinutes;
if (resReglament < 0) {
$('.reglament').text('регламент закончился');
} else {
$('.reglament').text(getSeconds);
}
ссылка на jsfiddle
Застопорился на преобразовании секунд в счетчик.