【问题标题】: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);
 }

【问题讨论】:

    标签: javascript jquery jquery-mobile


    【解决方案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 年前。

          【讨论】:

            猜你喜欢
            • 2016-01-18
            • 1970-01-01
            • 2011-07-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-08-06
            • 2019-11-11
            • 1970-01-01
            相关资源
            最近更新 更多