javascript - 在 Adobe 表单填写中通过 JavaScript 计算的小数小时数错误
问题描述
我是一家园林绿化公司的领班,我有责任为每个站点填写表格并跟踪我们的工时,这样我们就不会超出分配的时间。我正在尝试将 Adobe 中的文档数字化,这样我就可以在没有纸笔的情况下在手机上的字段中输入时间,并让 JavaScript 代码以十进制格式自动计算现场时间。
注意:我将使用 24 小时制时间,也就是军用时间(13:00/1PM 16:40/4:40PM)
当前在 Adobe 中使用的 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 = "";}
小时小数计算错误示例:
我应该提到这些字段都是Adobe 中唯一命名的表单填写字段,因此变量字段名称为“星期一站点 #1 开始时间、星期一站点 #1 出发时间、MS1 总小时数等:
请参阅我尝试其他 JS 代码无济于事的原始问题。其中一些片段并没有给我任何价值
我对 JavaScript 代码的了解有限,因此我们将不胜感激!
解决方案
推荐阅读
- node.js - 如何在没有互联网连接的服务器上为 nuxt.js 安装 npm 模块
- error-handling - Rust 错误:在编译时无法知道 `(dyn std::error::Error + 'static)` 类型的值的大小
- azure - 来自 Azure Functions 的莫名其妙的存储事务
- ios - CollectionCell 宽度是根据其内部的 UILabel 的固有宽度而不是实现的 sizeForItem 方法计算的
- ios - AppStore - 应用程序运行时验证(谷歌中的签名密钥)
- c# - 将 List <> 写入数据库 asp.net
- encryption - COAP 中的 AES 实施
- android - 条码扫描仪扫描空表等 Android
- android - LinearLayout 不均匀地改变微调器的高度
- java - 以编程方式禁用屏幕截图和屏幕录制