Как исправить скрипт Google Apps для локального времени и автоматически очистить ячейку - PullRequest
0 голосов
/ 08 февраля 2019

Я создаю общую повестку дня, которую должны заполнять разные люди.Каждый раз, когда они изменяют определенную ячейку, дата изменения (день) сообщается в другой ячейке в той же строке.Код ниже в настоящее время работает, но есть 3 незначительные проблемы:

  1. Местное время неверно (я живу в Италии)
  2. Я хотел бы видеть время какхорошо (часы: минуты)
  3. Если измененная ячейка очищена (например, если текст удален), также должна исчезнуть дата изменения.

Я считаю этот тип кодатрудно отладить и был бы признателен за любую помощь.Заранее спасибо,

function onEdit(event) {
var cell = event.source.getActiveCell();   
var sheet = cell.getSheet();
var headers= sheet.getDataRange().getValues()[0]; 
var statusCol = headers.indexOf('Status') + 1 ; 

var ss = event.source.getActiveSheet();
if (event.range.columnStart != 2) {

} else {
    ss.getRange(event.range.rowStart, 5)
        .setValue(getDate(new Date()));
}

var tt = event.source.getActiveSheet();
if (event.range.columnStart != 34) {
    return;
} else {
    tt.getRange(event.range.rowStart, 37)
        .setValue(getDate(new Date()));
}
}

function getDate(d) {
if (d) {
    return d.getDate() + "/" + (d.getMonth()+1) + "/" + d.getYear();
}
}

1 Ответ

0 голосов
/ 08 февраля 2019

Добавить TimeZone, Часы, Минуты и удаляет Datetime, если содержимое ячейки удалено.

Добавляет часы и минуты в 24-часовом формате с исправлением часового пояса и, если e.value равно нулю, то удаляет содержимоеячейка даты и времени.

function onEdit(e) {
  var ss=e.source;
  var rg=e.range;   
  var sh=rg.getSheet();
  if(rg.columnStart!=2 && rg.columnStart!=34){return;}
  if(rg.columnStart==2){
    if(e.value) {
      sh.getRange(rg.rowStart, 5).setValue(Utilities.formatDate(new Date(new Date().getFullYear(),new Date().getMonth()+1,new Date().getDate(),new Date().getHours(),new Date().getMinutes()),Session.getScriptTimeZone(),"d/MMM/yyyy HH:mm"));
    }else{
      sh.getRange(rg.rowStart, 5).setValue('');
    }
  }
  if (rg.columnStart==34) {
    if(e.value) {
      sh.getRange(rg.rowStart, 37).setValue(Utilities.formatDate(new Date(new Date().getFullYear(),new Date().getMonth()+1,new Date().getDate(),new Date().getHours(),new Date().getMinutes()),Session.getScriptTimeZone(),"d/MMM/yyyy HH:mm"));
    }else{
      sh.getRange(rg.rowStart, 37).setValue('');
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...