在给定的总持续时间划分后,我很难获得适当的持续时间值。
以下是该功能的示例。这是真实功能的缩写版本。在实际函数中,我循环遍历一个范围并将每一行持续时间(单元格设置为格式化时间:h:mm:ss)汇总为totDur。我从较大的函数中获取了this的值,并且只显式设置了此示例的值。令人困惑的是,这种方法适用于同一函数中约25个其他持续时间的除法计算,但不适用于此。我感觉它与数据类型有关,或者与此有关。
function myFunction() {
var totDur=new Date();
var totRev=137;
var totCtr=82
totDur.setUTCHours(0,0,0,0);
totDur=-301170516818000;
Logger.log('TOT DUR:'+totDur)
var nTime = new Date();
nTime.setUTCHours(0,0,0,0);
var diffGm=totDur-nTime;
var diffRev=totDur-nTime;
var divGm=diffGm/totCtr;
var divRev=diffRev/totRev;
Logger.log('TOT DUR: '+Utilities.formatDate(new Date(totDur), 'UTC', 'HH:mm:ss'))
Logger.log('BY REV: '+Utilities.formatDate(new Date(diffRev), 'UTC', 'HH:mm:ss')+'/'+totCtr+'='+Utilities.formatDate(new Date(divRev), 'UTC', 'HH:mm:ss'))
Logger.log('BY GM: '+Utilities.formatDate(new Date(diffGm), 'UTC', 'HH:mm:ss')+'/'+totRev+'='+Utilities.formatDate(new Date(divGm), 'UTC', 'HH:mm:ss'))
}
以下是生成的日志输出:
[17-01-18 10:20:33:442 MST] TOT DUR UNFORMATTED:-301170516818000
[17-01-18 10:20:33:443 MST] TOT DUR FORMATTED:03:06:22
[17-01-18 10:20:33:444 MST] BY REV:03:06:22/82 = 23:50:50
[17-01-18 10:20:33:445 MST] BY GM:03:06:22/137 = 01:12:31
TOT DUR值是正确的,但其他两个不是。我假设我正在进行不正确的分组。显然3小时6分22秒除以82不是23小时。
答案 0 :(得分:0)
我正在过度思考这个过程。将值转换为毫秒后,我执行除法,然后使用下面链接中的一个非常简单的函数转换回HH:mm:ss格式。
https://coderwall.com/p/wkdefg/converting-milliseconds-to-hh-mm-ss-mmm