在文本框中为值添加1

时间:2016-03-02 13:59:38

标签: javascript

我正在创建一个javascript函数。需要一段时间(mm:ss)由用户输入然后显示在php页面上。

由于某些原因,我似乎无法解决的一个问题是当秒数大于60时,分钟数会增加x。

例如,如果用户输入01:53的运行时间和00:25的惩罚时间,则输出为01:18,当它确实为02:18时。

我创建了一个if语句,条件是如果秒大于60,则将分钟增加1.

这是我到目前为止的功能。此外,以这种方式处理时间输入更容易,还是使用time()函数处理时间更容易,更有效?

function dfbcalc() {

  var dfbrun = document.getElementById("dfb_run").value;
  var dfbpen = document.getElementById("dfb_pen").value;

  var splitdfbrun = dfbrun.split(':');
  var splitdfbpen = dfbpen.split(':');

  var dfbmin;
  var dfbsec;
  var dfbtot;

  <!-- DFB Time input -->
  dfbmin = parseInt(splitdfbrun[0]) + parseInt(splitdfbpen[0])
  dfbmin = dfbmin % 60;

  dfbsec = parseInt(splitdfbrun[1]) + parseInt(splitdfbpen[1])
  dfbsec = dfbsec % 60;

  if (dfbsec < 10) {
    dfbsec = '0' + dfbsec;
  }

  if (dfbsec > 60) {
    dfbmin = dfbmin + 1;
  }

  alert(+dfbmin + ':' + dfbsec)
  dfbtot = '0' + dfbmin + ':' + dfbsec;
  document.getElementById("dfb_com").value = dfbtot;
}

&#13;
&#13;
  var dfbrun = "01:53"
  var dfbpen = "00:25"

  var splitdfbrun = dfbrun.split(':');
  var splitdfbpen = dfbpen.split(':');

  var dfbmin;
  var dfbsec;
  var dfbtot;

  <!-- DFB Time input -->
  dfbmin = parseInt(splitdfbrun[0]) + parseInt(splitdfbpen[0])
  dfbmin = dfbmin % 60;

  dfbsec = parseInt(splitdfbrun[1]) + parseInt(splitdfbpen[1])
  dfbsec = dfbsec % 60;

  if (dfbsec < 10) {
    dfbsec = '0' + dfbsec;
  }

  if (dfbsec > 60) {
    dfbmin = dfbmin + 1;
  }

  document.write(+dfbmin + ':' + dfbsec+"<br/>")
  dfbtot = '0' + dfbmin + ':' + dfbsec;
  document.write(dfbtot);
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:2)

这是您的操作顺序。在检查要添加的分钟数之前,您正在削减价值。

  dfbmin = parseInt(splitdfbrun[0]) + parseInt(splitdfbpen[0])
  dfbmin = dfbmin % 60;

  dfbsec = parseInt(splitdfbrun[1]) + parseInt(splitdfbpen[1])

  // Update Minutes
  if (dfbsec >= 60) {
    dfbmin = dfbmin + 1;
  }

  // Update seconds
  dfbsec = dfbsec % 60;

  if (dfbsec < 10) {
    dfbsec = '0' + dfbsec;
  }

答案 1 :(得分:1)

您可以将全部转换为秒并返回分钟和秒。 这样可以更容易掌握订单。

function pad(num) {
  return ("0"+num).slice(-2);
}
function getTot(dfbrun,dfbpen) {
  var splitdfbrun = dfbrun.split(':');
  var splitdfbpen = dfbpen.split(':');

  var dfbmin;
  var dfbsec;

  <!-- DFB Time input -->

  dfbmin = parseInt(splitdfbrun[0],10) + parseInt(splitdfbpen[0],10);
  dfbsec = dfbmin * 60;

  dfbsec += parseInt(splitdfbrun[1],10) + parseInt(splitdfbpen[1],10);

  dfbmin = Math.floor(dfbsec / 60);
  dfbsec = dfbsec - dfbmin * 60;

  return  pad(dfbmin) + ':' + pad(dfbsec);
}

var dfbrun = "01:53"
var dfbpen = "00:25"
  
document.write(getTot(dfbrun,dfbpen));