时间计算返回NaN结果

时间:2019-06-20 02:58:01

标签: javascript

我不太擅长脚本,但是我创建了一个PDF填充表格来计算工作时间。如果没有输入任何数据,结果字段将显示NaN:NaN,如果这些字段为空白,是否可以隐藏它?

我使用的脚本公式是.....

var hrsStart = parseInt(this.getField("hrsstart1").value.split(":")[0]);
var minStart = parseInt(this.getField("hrsstart1").value.split(":")[1]);
var hrsEnd = parseInt(this.getField("hrsend1").value.split(":")[0]); 
var minEnd = parseInt(this.getField("hrsend1").value.split(":")[1]);
if (minStart > minEnd) { 
  var minRez = 60 + minEnd - minStart;
  var hrsRez = hrsEnd - 1 - hrsStart; 
} else { 
  var minRez = minEnd - minStart;
  var hrsRez = hrsEnd - hrsStart; 
} 
this.getField("Totalhrs1").value = hrsRez + ":" + minRez;

如果没有输入任何数据,结果字段将显示NaN:NaN,如果这些字段为空白,是否可以隐藏该字段?

2 个答案:

答案 0 :(得分:1)

使用NaN检查器函数isNaN()如下:

if(!(isNaN(hrsRez)) && !(isNaN(minRez)) {
    this.getField("Totalhrs1").value = hrsRez + ":" + minRez;
}

答案 1 :(得分:0)

尝试一下:

var startValue = this.getField("hrsstart1").value;
var endValue = this.getField("hrsend1").value;

var timeValue = '';

if(startValue && endValue)
{
    var startArr = startValue.split(":");
    var endArr = endValue.split(":");

    var hrsStart = parseInt(startArr[0]);
    var minStart = parseInt(startArr[1]);
    var hrsEnd = parseInt(endArr[0]); 
    var minEnd = parseInt(endArr[1]);

    if(!isNaN(hrsStart) && !isNaN(minStart) && !isNaN(hrsEnd) && !isNaN(minEnd))
    {
        var minRez, hrsRez;
        if (minStart > minEnd) { 
          minRez = 60 + minEnd - minStart;
          hrsRez = hrsEnd - 1 - hrsStart; 
        } else { 
          minRez = minEnd - minStart;
          hrsRez = hrsEnd - hrsStart; 
        } 
        timeValue = hrsRez + ":" + minRez;
    }
}

this.getField("Totalhrs1").value = timeValue;