将缺失的数字添加到分割时间并将 NAN 更改为 00.00



im 使用休耕代码计算这两个字段中的总分钟数,但我不断得到 0.00 而不是 00.00

function calculate() {
             time1 = $("#field1").val().split(':'),
             time2 = $("#field2").val().split(':');
             hours1 = parseInt(time1[0], 10), 
             hours2 = parseInt(time2[0], 10),
             mins1 = parseInt(time1[1], 10),
             mins2 = parseInt(time2[1], 10);
             hours = hours2 - hours1,
             mins = 0;
         if(hours < 0) hours = 24 + hours;
         if(mins2 >= mins1) {
             mins = mins2 - mins1;
         } else {
             mins = (mins2 + 60) - mins1;
         }
     
         // the result
         $("#total").val(hours + ':' + mins);         
     }

我也想将 NAN 替换为 00.00

检查它们是否小于 10,如以下示例所示:

   hours=(hours<10)?'0'+hours:hours;
   mins =(mins <10)?'0'+mins:mins;

您可以使用以下命令将NaN小时和分钟设置回整数:

if (!hours) {
  hours = 0;
}
if (!mins) {
  mins = 0;
}

然后,如果值小于 10(且大于 0),则只需在前面加上一个0

if (hours < 10 && hours > 0) {
  hours = '0' + hours;
}
if (mins < 10 && mins > 0) {
  mins = '0' + mins;
} 

这可以在以下方面看到:

function calculate() {
  time1 = $("#field1").val().split(':'),
  time2 = $("#field2").val().split(':');
  hours1 = parseInt(time1[0], 10),
  hours2 = parseInt(time2[0], 10),
  mins1 = parseInt(time1[1], 10),
  mins2 = parseInt(time2[1], 10);
  hours = hours2 - hours1,
  mins = 0;
  
  if (hours < 0) hours = 24 + hours;
  if (mins2 >= mins1) {
    mins = mins2 - mins1;
  } else {
    mins = (mins2 + 60) - mins1;
  }
  
  if (!hours) {
    hours = 0;
  }
  if (!mins) {
    mins = 0;
  }
  
  if (hours < 10 && hours > 0) {
    hours = '0' + hours;
  }
  if (mins < 10 && mins > 0) {
    mins = '0' + mins;
  }
  // the result
  $("#total").val(hours + ':' + mins);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="field1">
<input id="field2">
<button onclick="calculate()">Go</button>
<br /><br />
<input id="total">

希望这有帮助! :)

最新更新