如何计算持续时间?

Posted

技术标签:

【中文标题】如何计算持续时间?【英文标题】:How do I calculate a duration time? 【发布时间】:2013-03-07 18:36:05 【问题描述】:

我正在开发一个基于 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);
 

【问题讨论】:

【参考方案1】:

你是这个意思吗:

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

更新

检查JSFiddle

【讨论】:

是的,伙计,但是我能否获得从停机时间开始的时间,该时间将继续计数直到停机时间结束?使用您的方法? 那里并没有真正得到你需要的东西,但添加了指向 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 浏览器(chrome、safari)中工作。

【讨论】:

【参考方案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】:

我有这个功能可以显示两个日期之间的时间距离:

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 hours 格式的输出可以任意增长。

【讨论】:

【参考方案5】:

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

Timeago 是一个 jQuery 插件,可以很容易地自动支持 更新模糊时间戳(例如“4 分钟前”或“大约 1 天前”)。 下载、查看示例并尽情享受。

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

此页面上次修改时间为 13 天前。

Ryan 出生于 34 年前。

【讨论】:

以上是关于如何计算持续时间?的主要内容,如果未能解决你的问题,请参考以下文章

如何计算两个 chrono::DateTime 之间的持续时间?

iOS 使用 UIDynamicAnimator 进行视图控制器转换时如何计算转换持续时间?

如何计算给定 BDB 文件的 BerkeleyDB 转储/加载操作的持续时间?

计算 2 个日期内的持续时间

SQL Server - 如何根据将插入数据半小时的表中的几个参数来计算持续时间?

如何在php中计算月份截止日期[关闭]