如何计算持续时间?

时间:2013-03-19 07:12:42

标签: javascript jquery jquery-mobile

我正在开发一个基于Web的应用程序来捕获系统日期时间的开始时间和结束时间,但我的主要问题是我不知道如何获得停机时间,开始和结束时间之间的停机时间。

 //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);
 }

5 个答案:

答案 0 :(得分:28)

你的意思是:

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

<强> UPD

检查JSFiddle

答案 1 :(得分:12)

更新:

如果您想向用户显示时差,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)&amp; webkit浏览器(chrome,safari)。

答案 2 :(得分:4)

要简单地测量经过的时间,请使用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(或者少于或多于几毫秒)。

答案 3 :(得分:1)

使用这个漂亮的jQuery插件:http://timeago.yarp.com/

  

Timeago是一个jQuery插件,可以轻松自动支持   更新模糊时间戳(例如&#34; 4分钟前&#34;或&#34;约1天前&#34;)。   下载,查看示例,然后享受。

     

大约一分钟前你打开了这个页面。 (这会更新每一个   分钟。等等。)

     

此页面最后修改于13天前。

     莱恩出生于34年前。

答案 4 :(得分:1)

我具有此功能来显示两个日期之间的时间距离:

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小时格式的输出可以任意增加。