Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.04.2020, 11:23
Интересующийся
Отправить личное сообщение для Martovytskyi Посмотреть профиль Найти все сообщения от Martovytskyi
 
Регистрация: 13.06.2016
Сообщений: 15

Как правильно построить логику работы с датой?
У меня есть дата заказа, которая приходит с сервера. Необходимо создать счетчик обработки заказа, который будет тикать каждую секунду, и если регламент закончился, то писать, что регламент вышел.

<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

Застопорился на преобразовании секунд в счетчик.
Ответить с цитированием
  #2 (permalink)  
Старый 03.04.2020, 11:42
Интересующийся
Отправить личное сообщение для Martovytskyi Посмотреть профиль Найти все сообщения от Martovytskyi
 
Регистрация: 13.06.2016
Сообщений: 15

вопрос решен, может кому то пригодится ответ
Ответить с цитированием
  #3 (permalink)  
Старый 03.04.2020, 11:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Martovytskyi,
а не проще присылать с сервера reglamentStatic а не дату, и тогда 90% вычислений можно в топку + не надо отслеживать разницу времени сервера и клиента.

Последний раз редактировалось рони, 03.04.2020 в 11:58.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно организовать подключение скриптов? s24344 Общие вопросы Javascript 0 31.12.2018 11:53
Как правильно подключить стили в webpack? s24344 Сборка проекта, утилиты 0 08.11.2018 09:00
Пасоны, как правильно парсить параметры? megaupload Оффтопик 15 05.05.2013 14:44
Как правильно прицепить обработку события slowklg Events/DOM/Window 6 15.03.2012 16:20
Как правильно очистить maxlength в input? Маэстро Events/DOM/Window 10 22.06.2011 18:14