Я искал функцию, обеспечивающую разницу в два раза, и, к счастью, у одного из Пользователей здесь была отличная функция, которая выглядела прекрасно. Код ссылки
function getDaysHoursAndMinutes(){
var hd=new Date('2017-11-21T20:23:26+0000').valueOf();
var td=new Date().valueOf();
var sec=1000;
var min=60*sec;
var hour=60*min;
var day=24*hour;
var diff=td-hd;
var days=Math.floor(diff/day);
var hours=Math.floor(diff%day/hour);
var minutes=Math.floor(diff%day%hour/min);
Logger.log('%s days %s hours %s minutes',days,hours,minutes);
}
Так что я немного подправил его по своему вкусу.
function getDaysHoursAndMinutes(t1,t2){
var hd=new Date(t1).valueOf();
var td=new Date(t2).valueOf();
var sec=1000;
var min=60*sec;
var hour=60*min;
var day=24*hour;
var diff=td-hd;
var days=Math.floor(diff/day);
var hours=Math.floor(diff%day/hour);
var minutes=Math.floor(diff%day%hour/min);
Создано две переменные, которые можно поместить в функцию. Я сделал это, чтобы я мог сделать эти переменные getValue(range)
Но, возможно, я что-то пропустил или недостаточно хорошо понимаю код, чтобы точно знать, как он работает. Вот формат, для которого я его получал.
function setValue(cellName, value) {
SpreadsheetApp.getActiveSpreadsheet().getRange(cellName).setValue(value);
}
function getValue(cellName) {
return SpreadsheetApp.getActiveSpreadsheet().getRange(cellName).getValue()
}
setValue('F' + passiveRow, getDaysHoursAndMinutes(getValue('D' + passiveRow),getValue('E' + passiveRow)));
passiveRow в данном случае это просто одно число, которое является строкой, соответствующей некоторым критериям. Допустим, 2
Поэтому я подумал, просто получив значения D2 и E2, значения, которые выглядят следующим образом: 5/15/2019 21:17:15, 5/15/2019 21:18:33
, они будут правильно внедрены в формулу, и формула вернется обратно в мою функцию setValue. Таким образом я logger.logged это и Logger.log (minutes = 1), как это должно. Я попытался войти в систему несколько раз, и я получил номера, которые были правильными. Но внутри строки F, внутри правильного поля, она дает «неопределенное» вместо числа, которое мне дает Logger.log в функции разницы во времени. Я чувствую, что это очень очевидное упущение, которого я просто не вижу.