Не удается найти метод formatDate ((класс), строка, объект). (строка 54, файл «Код») - PullRequest
1 голос
/ 28 октября 2019

Я скопировал скрипт google, который делает веб-приложение расписания из пакета, но я не могу заставить его работать вообще. Я думаю, что это из-за этой ошибки. Вот соответствующие биты.

Итак, у меня есть эта вспомогательная функция

function fmtDate_(d, format){
  // Set the default date format, if 'format' not passed.
  var fmt = format || DF;

  return Utilities.formatDate(d, TZ, fmt);
}

и глобальные значения

var DF = "MM/dd/yyyy HH:mm:ss";
var TZ = Session.getScriptTimeZone();

, а функция, которой она помогает,

function postTime(name, val){
  var time = fmtDate(new Date());
  var data = TimeSheet.getDataRange().getValues();

  // If 'shift start' clicked
  if(val == "sb"){
    // Update start time if clicked again.
    for(var i in data){
      if(data[i][1] == name && data[i][0] == "sb" ){
        data[i][2] = time;
        TimeSheet.getRange(1, 1, data.length, data[0].length)
          .setValues(data);
        return [val,name];
      }
    };

    // Else insert new name and update start time.
    TimeSheet.appendRow([val,name,time]);

    return [val,name];
  }

спасибо!

Ответы [ 2 ]

2 голосов
/ 29 октября 2019

Нет глобальных переменных следующим образом:

function fmtDate_(d, format) {
// Set the default date format, if 'format' not passed.
var fmt = format || "MM/dd/yyyy HH:mm:ss";

var timeZone = Session.getScriptTimeZone();
return Utilities.formatDate(d, timeZone, fmt);

}

function postTime(name, val) {
var time = fmtDate_(new Date());

var data = TimeSheet.getDataRange().getValues();

// If 'shift start' clicked
if (val == "sb") {
    // Update start time if clicked again.
    for (var i in data) {
        if (data[i][1] == name && data[i][0] == "sb") {
            data[i][2] = time;
            TimeSheet.getRange(1, 1, data.length, data[0].length)
                .setValues(data);
            return [val, name];
        }
    };

    // Else insert new name and update start time.
    TimeSheet.appendRow([val, name, time]);

    return [val, name];
}

}

0 голосов
/ 28 октября 2019

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

function postTime(name, val) {
  var time= Utilities.formatDate(new Date(),Session.getScriptTimeZone(), "MM/dd/yyyy HH:mm:ss");
  var ss=SpreadsheetApp.getActive();
  var TimeSheet=ss.getSheetByName('Time Sheet');
  var data = TimeSheet.getDataRange().getValues();
  if(val == "sb"){
    for(var i=0;i<data.length;i++) {
      if(data[i][1] == name && data[i][0] == "sb" ){
        data[i][2]=time;
        TimeSheet.getRange(1, 1, data.length, data[0].length).setValues(data);
        return [val,name];
      }
    }
    TimeSheet.appendRow([val,name,time]);
    return [val,name];
  }
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...