Автоматическая отметка времени на основе заполнения другой ячейки - PullRequest
0 голосов
/ 31 января 2019

Я нашел здесь скрипт для автоматического заполнения метки времени в одной ячейке, когда контент набирается в другой.Это работает, НО время никогда не бывает точным.Это дает одно и то же время в течение всего дня.

Может кто-нибудь сказать мне, что я сделал не так в моем скрипте?

Мой документ https://docs.google.com/spreadsheets/d/1NRNs6QUQ0K1m9mPH00zGUDiVxL8A1foTXxXIQ_XFjpA/edit?usp=sharing содержит следующий скрипт:

function onEdit(event)
{ 
  var timezone = "GMT-8";
  var timestamp_format = "MM-dd-yyy"; // Timestamp Format. 
  var updateColName = "Student Number";
  var timeStampColName = "Timestamp";
  var sheet = event.source.getSheetByName('SCAN LATE'); //Name of the sheet where you want to run this script.    
  var actRng = event.source.getActiveRange();
  var editColumn = actRng.getColumn();
  var index = actRng.getRowIndex();
  var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
  var dateCol = headers[0].indexOf(timeStampColName);
  var updateCol = headers[0].indexOf(updateColName); updateCol = updateCol+1;
  //if (dateCol > -1 && index > 1 && editColumn == updateCol) { // only timestamp if 'Last Updated' header exists, but not in the header row itself!
    var cell = sheet.getRange(index, dateCol + 1);
    var date = Utilities.formatDate(new Date(), timezone, timestamp_format)
    var d = new Date();
    var curTime = d.toLocaleTimeString()
    cell.setValue(date.toString() + " " + curTime );
  //}
}

1 Ответ

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

yyy не является допустимым форматом для года.Допустимые форматы:

  • y
  • гг
  • гггг

Чтобы получить текущую дату и время, используйте

var timestamp = new Date();

Чтобы отформатировать метку времени для передачи ее в Google Sheets в виде текста, используйте

var timezone = 'GMT-8';
var datetimeFormat = 'MM-dd-yyyy hh:mm:ss';
var timestampT = Utilities.formatDate(timestamp, timezone, datetimeFormat);

Обычно самый простой способ передать метку времени в Google Sheets - это передать объект Date и использовать формат ячейки электронной таблицы.функция для форматирования значения даты по мере необходимости.

range.setValue(new Date());

Ссылки

...