Как рассчитать продолжительность?

Я разрабатываю веб-приложение для захвата времени начала и окончания времени системы, но моя основная проблема заключается в том, что я не знаю, как я могу получить время продолжительности, между начальным и конечным временем простоя.

 //Function to get current start time
  var startTime = setInterval(function () { start() }, 1000);

  function start() {
    var startDate = new Date();
    var timeStart = startDate.toLocaleTimeString();
  $("#setCount").html(timeStart);
 }

Ответ 1

Вы имеете в виду это:

var date1 = new Date();
var date2 = new Date();
var diff = date2 - date1; //milliseconds interval

обн

проверить JSFiddle

Ответ 2

Обновление:

Если вы хотите отобразить разницу во времени для пользователя, Serigo's method будет делать Это. Но если это для любых целей развития, ниже функции сделают вашу жизнь легкой.


Просто хотел сообщить вам об этой функции консоли.

Поместите эту строку в начало кода инициализации вашего приложения console.time('appLifeTime');

Поместите это, где бы вы ни находились, что ваше приложение заканчивается. console.timeEnd('appLifeTime');

console.time('appLifeTime');

setTimeout(function delay(){
  console.timeEnd('appLifeTime');
}, 1500);

Вышеупомянутый фрагмент кода напечатает, appLifeTime: 1500.583ms.

AFAIK, console.time & console.timeEnd работает в firefox (с firebug) и браузерами webkit (хром, сафари).

Ответ 3

Чтобы просто измерить пройденное время, используйте Date.getTime(), который выводит текущее время в миллисекундах с момента unix.

Вы можете вычесть одно миллизное значение из другого, чтобы получить продолжительность.

Пример:

var startTime = new Date().getTime();

setTimeout(function () {
  var endTime = new Date().getTime();
  console.log("duration [ms] = " + (endTime-startTime));
}, 1500);

Выход был бы, конечно: duration [ms] = 1500 (или пару мс меньше или больше).

Ответ 4

Используйте этот отличный jQuery-плагин: http://timeago.yarp.com/

Timeago - это плагин jQuery, который упрощает автоматическую поддержку обновление нечетких временных меток (например, "4 минуты назад" или "около 1 дня назад" ). Загрузите, просмотрите примеры и наслаждайтесь.

Вы открыли эту страницу около минуты назад. (Это обновит каждый минута. Подождите.)

Последнее изменение этой страницы: 13 ч. назад.

Райан родился 34 года назад.

Ответ 5

У меня есть эта функция, чтобы показать расстояние между двумя датами:

export const timeDistance = (date1, date2) => {
  let distance = Math.abs(date1 - date2);
  const hours = Math.floor(distance / 3600000);
  distance -= hours * 3600000;
  const minutes = Math.floor(distance / 60000);
  distance -= minutes * 60000;
  const seconds = Math.floor(distance / 1000);
  return '${hours}:${('0' + minutes).slice(-2)}:${('0' + seconds).slice(-2)}';
};

Вывод в формате h:mm:ss часов может расти произвольно.