【问题标题】:Calculate difference between two times and increment the result计算两次之间的差异并增加结果
【发布时间】:2018-07-31 09:44:44
【问题描述】:

我正在尝试计算两次之间的差异并增加结果。对于这些,我尝试了下面的代码。

function toSeconds(time_str) {
        // Extract hours, minutes and seconds
        var parts = time_str.split(':');
        // compute  and return total seconds
        return parts[0] * 3600 + // an hour has 3600 seconds
            parts[1] * 60 + // a minute has 60 seconds
            +
            parts[2]; // seconds
    }

    var a = "12:00:00"
    var b = "13:05:02"

    var difference = Math.abs(toSeconds(a) - toSeconds(b));

    // format time differnece
    var result = [
        Math.floor(difference / 3600), // an hour has 3600 seconds
        Math.floor((difference % 3600) / 60), // a minute has 60 seconds
        difference % 60
    ];
    // 0 padding and concatation
    result = result.map(function (v) {
        return v < 10 ? '0' + v : v;
    }).join(':');
    alert(result);

假设开始时间是 00:05 AM,结束时间是 00:10 AM。如果我们在这两个时间之间进行计算,结果将是 5 分钟。所以我们需要像 00:05:00 这样增加这些。从现在开始,时间将从秒、分钟、小时开始递增

但如果提供 12 小时 格式来计算剩余小时数,它会起作用。是否有可能计算两次之间的差异并增加结果时间

【问题讨论】:

  • 不清楚你在问什么。什么不工作?
  • 像什么递增?小时还是分钟?
  • Bojjaiah 为什么你的代码看起来和答案一模一样,这里有 5 票 stackoverflow.com/questions/11883768/…
  • 删除min = ((min / 60) * 100).toString(),它工作正常
  • @shreyasminocha 假设开始时间 00:05 AM 和结束时间 00:10 AM。如果我们在这两个时间之间进行计算,结果将是 5Minutes 正确的。所以我们需要像 00:05:00 这样增加它们。从现在开始,时间将从秒、分钟和小时开始递增。参考htmldrive.net/items/demo/1454/…

标签: javascript time increment


【解决方案1】:

这是你想要的吗?我创建了一个函数,使用 Javascript 的 setInterval 每 1 秒递增一次结果变量。你可以通过调用clearInterval(x)来结束循环

function toSeconds(time_str) {
        // Extract hours, minutes and seconds
        var parts = time_str.split(':');
        // compute  and return total seconds
        return parts[0] * 3600 + // an hour has 3600 seconds
            parts[1] * 60 + // a minute has 60 seconds
            +
            parts[2]; // seconds
    }

    var a = "12:00:00"
    var b = "13:05:02"

    var difference = Math.abs(toSeconds(a) - toSeconds(b));

    // format time differnece
    var result = [
        Math.floor(difference / 3600), // an hour has 3600 seconds
        Math.floor((difference % 3600) / 60), // a minute has 60 seconds
        difference % 60
    ];
    // 0 padding and concatation
//    result = result.map(function (v) {
//        return v < 10 ? '0' + v : v;
//    }).join(':');
    console.log(result);
    
   let x = setInterval(function() {
   result[2] = result[2] + 1;
   if(result[2]>=60){
    result[2] = 0;
    result[1] = result[1] + 1;
   }
   if(result[1]>=60){
    result[1] = 0;
    result[0] = result[0] +1
    }
    
    result[0] = result[0] === 24 ? 0 : result[0]
      
    console.log(result.map(function (v) {
        return v < 10 ? '0' + v : v;
    }).join(':'))
  
    }, 1000);

【讨论】:

  • 您对上午/下午有什么要求?只是为了展示目的?还是您计算的一部分?
  • 我为您可能想要的东西创建了一个代码笔。你也可以在那里整理一些代码。 codepen.io/hibijvs/pen/vaROmr
猜你喜欢
  • 2013-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-16
  • 1970-01-01
相关资源
最近更新 更多