У меня нет опыта написания сценариев, но я смог найти сценарий и отредактировать его (с большим количеством проб и ошибок) в соответствии со своими потребностями.
У меня есть форма Google, где первый вопрос позволяет пользователям выбирать дату, но это не обязательно дата, когда пользователи заполняют форму. Результаты экспортируются в Google Sheet, и у меня есть скрипт, который отправляет электронное письмо с ответами формы.
Он работал прекрасно до перехода на летнее время. Теперь в таблице указаны правильные даты, но в электронных письмах они выходной.
Пример сообщения электронной почты:
Ваш ребенок, ИМЯ, получил нарушение дресс-кода в среду, 27 марта 2019 г.
23:00:00 GMT-0600 (CST), без идентификатора.
До перехода на летнее время время показывалось как 00:00:00
.
В коде строка [2] - это дата, извлеченная из электронной таблицы.
var EMAIL_SENT = "EMAIL_SENT";
function sendEmails2() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Script");
var startRow = 2;
var numRows = 5000;
var dataRange = sheet.getRange(startRow, 1, numRows, 5000)
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[12];
var message = "Your child, " + row[10] + ", received a dress code violation on " + row[2] + ", for " + row[11] + ".\nIf you have any questions, please email NAME at name.name@name.org\n\nThank you,\n\nNAME\nAssistant Principal";
var emailSent = row[13];
if (emailSent != EMAIL_SENT) {
var subject = "Uniform Violation - Do Not Reply";
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(startRow + i, 14).setValue(EMAIL_SENT);
SpreadsheetApp.flush();
}
}
}
В идеале в электронном письме должна быть указана дата именно из таблицы в формате MM/DD/YYYY
.
Вместо этого в электронных письмах отображается предыдущий день со временем 11 вечера.