Поиск разницы между двумя временами с помощью скрипта приложений Google; понимание ответа Logger.log - PullRequest
0 голосов
/ 19 июня 2020

Мне здесь не хватает какого-то преобразования или чего-то такого, когда я использую скрипт приложений Google, чтобы найти разницу между временами. Я создаю табель для использования школьным персоналом в таблицах Google. Используя детские шаги, я пытаюсь найти количество часов / минут, которое сотрудник ввел в первую запись воскресенья; 6:00 - 9:00, 14.06.2020. Мой код дает мне 10 800 000; и даты в журнале не соответствуют тому, что показывает таблица, что говорит мне, что ему нужно знать больше? Как только я пойму это, я смогу двигаться дальше. Спасибо.

Это код, который я использую:

function onEdit() {
  // get the current sheet
  var ss = SpreadsheetApp.getActiveSheet();  

  // set variables to be used for Sunday, Week 1
  var Week1Sun1_In = ss.getRange('B7').getValue();
  var Week1Sun1_Out = ss.getRange('B8').getValue();
  var Week1Sun1_Hours = ss.getRange('B9').setValue(Week1Sun1_Out - Week1Sun1_In);

  Logger.log(Week1Sun1_In,Week1Sun1_Out,Week1Sun1_Hours);    
}

И вот что я вижу в журнале:

ЖУРНАЛЫ: [20-06- 19 11: 43: 59: 581 PDT] сб дек c 30 06:00:00 GMT-05: 00 1899 сб дек c 30 09:00:00 GMT-05: 00 1899 Диапазон

А это фрагмент из электронной таблицы, который покажет, что я пытаюсь сделать: enter image description here

1 Ответ

0 голосов
/ 19 июня 2020
function timeDiffHours(Start,End) {
  if(Start && End) {
    var second=1000;
    var minute=60*second;
    var hour=minute*60;
    var day=hour*24;
    var t1=new Date(Start).valueOf();
    var t2=new Date(End).valueOf();
    var d=t2-t1;
    var days=Math.floor(d/day);
    var hours=Math.floor(d%day/hour);
    var minutes=Math.floor(d%day%hour/minute);
    var seconds=Math.floor(d%day%hour%minute/second);
    return 'dd:hh:mm:ss\n' + days + ':' + hours + ':' + minutes + ':' + seconds;  
  } else {
    return 'Invalid Inputs';
  }
}
...