在文本框中的值中添加 1

Adding 1 to value in textbox

本文关键字:添加 文本      更新时间:2023-09-26

我有一个正在创建的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;
}

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

这是您的操作顺序。在检查要添加的分钟数之前,您先切断该值。

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

您可以将全部转换为秒,然后再转换为分钟和秒。这样可以更轻松地掌握顺序。

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