首页 > 解决方案 > 在 Adob​​e 表单填写中通过 JavaScript 计算的小数小时数错误

问题描述

首先,我要感谢ksav和他迄今为止的帮助

我是一家园林绿化公司的领班,我有责任为每个站点填写表格并跟踪我们的工时,这样我们就不会超出分配的时间。我正在尝试将 Adob​​e 中的文档数字化,这样我就可以在没有纸笔的情况下在手机上的字段中输入时间,并让 JavaScript 代码以十进制格式自动计算现场时间。

注意:使用 24 小时制时间,也就是军用时间(13:00/1PM 16:40/4:40PM)

当前在 Adob​​e 中使用的 JS 代码没有正确计算/转换时差:

第二

这对时差给出了不正确的十进制计算:

var start = this.getField("Monday Site #1 Start Time").value;
var startArr = start.split(":");

// finish
var finish = this.getField("Monday Site #1 Depart Time").value;
var finishArr = finish.split(":");

// difference
var hourDiff = Math.abs(finishArr[0] - startArr[0]);
var minDiff = Math.floor((Math.abs(finishArr[1] - startArr[1]) / 59)*100);

if (minDiff.toString().length == 1) 
    minDiff = '0' + minDiff;

var output = hourDiff + "." + minDiff;
event.value = output;

if ((event.value == "") || (event.value == Infinity) || isNaN(event.value)) 
    {event.value = "";}

小时小数计算错误示例:

测试

我应该提到这些字段都是Adob​​e 中唯一命名的表单填写字段,因此变量字段名称为“星期一站点 #1 开始时间、星期一站点 #1 出发时间、MS1 总小时数等:

表单域

请参阅我尝试其他 JS 代码无济于事的原始问题。其中一些片段并没有给我任何价值

我对 JavaScript 代码的了解有限,因此我们将不胜感激!

标签: javascripttimeadobedifferencecalculation

解决方案


推荐阅读