как остановить/ запустить таймер на сервере

есть таймер который находиться на сервере установлен на определённое время. Вопрос в том как можно сделать кнопку в админ панели что бы можно было запускать таймер с кнопки, а не что бы он постоянно работал.

Например мне нужно что бы когда я нажму кнопку в админ панели запускался таймер на 2 часа но для всех пользователей. Заранее спасибо.

function getTimeRemaining(endtime) {
  var t = Date.parse(endtime) - Date.parse(new Date());
  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,
    // 'days': days,
    'hours': hours,
    'minutes': minutes,
    'seconds': seconds
  };
} 

function initializeClock(id, endtime) {
  var clock = document.getElementById(id);
  // var daysSpan = clock.querySelector('.days');
  var hoursSpan = clock.querySelector('#hh');
  var minutesSpan = clock.querySelector('#mm');
  var secondsSpan = clock.querySelector('#ss');

  function updateClock() {
    var t = getTimeRemaining(endtime);

    // daysSpan.innerHTML = t.days;
    hoursSpan.innerHTML = ('0' + t.hours).slice(-2);
    minutesSpan.innerHTML = ('0' + t.minutes).slice(-2);
    secondsSpan.innerHTML = ('0' + t.seconds).slice(-2);

    if (t.total <= 0) {
      clearInterval(timeinterval);
    }
  }

  updateClock();
  var timeinterval = setInterval(updateClock, 1000);
}

var deadline="July 25 2021 20:25:00 GMT+0300"; // точная дата
 // var deadline = new Date(Date.parse(new Date()) +  24 * 60 * 60 * 1000); // точное время
initializeClock('countdown', deadline);

Ответы (2 шт):

Автор решения: BogdanBida

Как вариант использовать сокеты На сервере эмитите сокет, а клиенты его прослушивают и когда им приходит значение что пора запустить таймер - запускаете его

→ Ссылка
Автор решения: HarryTruman

может кому пригодится решил проблему таким способом

io.sockets.on('connection', function (socket) {
  socket.on('start', function (data) {
    countdown = 7200;
var t =  setInterval(function() {
  countdown--;
var hours = Math.floor(countdown / 60 /60 );
var minutes = Math.floor(countdown / 60) - (hours * 60);
var seconds = countdown % 60;
let timer =  hours +":"+ minutes +":"+ seconds ;
  io.sockets.emit('timer', { countdown: timer});
}, 1000);
  socket.on('stop', function () {
    clearInterval(t);
})
  });

});

при нажатии на кнопку старт идет отсчет от 02:00:00 в обратную сторону, который передаётся на всех подключенных пользователей

→ Ссылка