Получение объекта даты для отображения в виде обычного текста

#javascript #datetime #google-apps-script

#javascript #datetime #google-apps-script

Вопрос:

В настоящее время у меня есть рабочий код, который принимает сегодняшнюю дату и вставляет ее в ячейку, если этот ученик отсутствует. Затем код добавляет другую дату в ту же ячейку, если этот учащийся отсутствует в другой день. Для первого свидания все работает хорошо. Он отображается как:

09/21

Но когда я запускаю его снова на следующий день, он показывает:

Пн, 21 сентября 2020 г. 01:00:00 GMT-04:00 (восточное дневное время); 22.09.2017

Он должен сказать:

09/21; 09/22

Вот соответствующий раздел кода:

 var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
var emailCol = getColNum("Student Email")
var absentCol = getColNum("Absences");
var tardyCol = getColNum("Tardies");
var timezone = SpreadsheetApp.getActive().getSpreadsheetTimeZone();
var date = Utilities.formatDate(new Date(), timezone, "MM/dd")

if (saveAb == "Yes") {

  for (i = 0; i < 40; i  ) {

    var stuEmail = tAtt.getRange(2   i, 30).getValue();
    var stuRow = getRowNum(stuEmail, emailCol);
    var stuAbData = sheet.getRange(stuRow, absentCol).getValue();
    Logger.log(stuAbData);
    var abToDisplay = date



    if (stuAbData == "") {
      var stringToDisplay = abToDisplay
    } else {
      var stringToDisplay = stuAbData   "; "   abToDisplay;
    }

    sheet.getRange(stuRow, absentCol).setValue(stringToDisplay);

  }
}

if (saveAb == "Yes" || saveTa == "Yes") {
  ss.toast("Attendance Saved");
}


}
  

Как-нибудь я могу заставить его выдать переменную stuAbData в виде обычного текста или предотвратить переформатирование if? Я пробовал несколько вещей, таких как использование этой переменной вместо этого в поле .setValue . Не работает.

var newTest = Utilities.formatDate(stuAbData, часовой пояс, «ММ / дд»);

Ответ №1:

Используйте getDisplayValue() вместо этого.

 var stuAbData = sheet.getRange(stuRow, absentCol).getDisplayValue();
  

Проблема в getValue() том, что Google интерпретирует его и вернет вам как объект Date. Это должно быть проблемой только при втором запуске, когда у вас есть значение «09/21», поскольку это будет интерпретироваться как дата.