[英]Calculate the duration difference between 2 formatted time fields in Google App Scripts
您需要了解的第一件事是表格和 Apps 脚本如何解释日期格式。 Google 在其产品上使用Unix 时间,因此它从00:00:00 UTC on 1 January 1970
开始。 未指定日期意味着表格将09:00:00
解释为Sat Dec 30 17:09:21 GMT+00:09 1899
。
在您的情况下,由于您要推断日期,因此不会有太大的不同,但是我建议您将它们30/05/2020 09:00:00
,然后将 go 写成Format > Number > Time
。
关于 Apps Script, getValues会将其解释为类似于Mon Dec 30 18:00:00 GMT+02:00 2020
的内容,这是没有用的。 使用Date Javascript 方法将其格式化为 Date object。 然后您可以使用 getTime 以毫秒为单位获取它(这里的一切都以毫秒为单位):
一旦您拥有两个以毫秒为单位的时间值,您就可以使用它们进行操作。 您必须将它们转换为小时(1 毫秒 = 3.6e+6 小时):
var a = e.source.getActiveSheet().getRange(row,7).getValue()
var b = e.source.getActiveSheet().getRange(row,8).getValue()
var a1 = new Date(a).getTime(); //Time in milliseconds
var b1 = new Date(b).getTime(); //Time in milliseconds
var hours = (b1 - a1) / 3.6e+6;
e.source.getActiveSheet().getRange(row,9).setValue(hours);
这在几分钟内效果不佳。 1 小时和 30 分钟将是 1.5 小时。
函数解决方案:
使用表格公式代替 Apps 脚本来计算它。 就像将例如 C1 设置为=B1-A1
一样简单;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.