Редактировать в Google Script формат новой даты - PullRequest
2 голосов
/ 08 октября 2019

У меня есть скрипт Google (ниже), который выполняет проверку столбца N (14) для обновления ячейки, а затем помещает отметку времени в столбец O в соседней ячейке. Однако у меня возникли проблемы с установкой формата отметки времени. В настоящее время метка времени является правильным форматом даты, однако, формат времени не GMT, но, кажется, GMT-8. Я могу исправить это, добавив еще один столбец на листе и имея собственную формулу, которую можно использовать для изменения часового пояса, но на самом деле я хочу, чтобы все это было сделано в функции onEdit ниже, чтобы сэкономить на ненужных дополнительных столбцах и скрипте.

function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  if( s.getName() == "Sheet1" ) { //The sheet name that the timestamp will be implemented on
    var r = s.getActiveCell();
    if( r.getColumn() == 14 ) { //Enter column number i.e A = 1, B = 2 etc... 
      var nextCell = r.offset(0, 1); 
      if( nextCell.getValue() === '' ) //Checks if the column for the timestamp is empty 
        nextCell.setValue(new Date());
    } 
  } 
} 

Я пытался редактировать последнюю строку различными способами, такими как:

nextCell.setValue(new Date("GMT","dd/mm/yyyy hh:mm")); 
nextCell.setValue(new Date("dd/mm/yyyy hh:mm")); 

Но это не работает, так как оставляет метку времени в столбце O пустым,Есть идеи?

1 Ответ

0 голосов
/ 08 октября 2019
function onEdit(e) {
  var sh=e.range.getSheet();
  e.source.toast('Here');
  if(sh.getName()!="Sheet1" )return;
  if( e.range.columnStart==14 && e.range.offset(0,1).isBlank()) {
    e.range.offset(0,1).setValue(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "d/MM/yyyy HH:mm"));
  } 
} 

Utilities.formatDate ()

Объект события onEdit

...