Почему проверка даты в Google Таблицах отклоняет сегодняшнюю дату до 8: 00 утра?


Я создал Google sheet, чтобы сохранить список рабочих задач со столбцом для отслеживания даты, на которую создаются элементы, и создал скрипт для автоматического заполнения ячеек в этом столбце датой дня, когда вставляется новая строка.

Ячейка (например, G9), которая является целью скрипта, использует следующую формулу проверки, чтобы убедиться, что при изменении даты пользователи используют дату, которая не является ни выходным днем, ни будущим:

=and(isdate(G9), weekday(G9,2)<6, G9<=today())

ЭТО ТОЛЬКО РАБОТАЕТ Но только если скрипт запускается в любое время после 8: 00 утра ! Если я попытаюсь использовать его раньше, проверка ячейки отклонит ввод!

Скрипт выглядит так (curRow-это номер добавленной строки):

 // Adds today's date without using =today()
  var myrangename = "G"+curRow;
  var dateCell = sheet.getRange(myrangename);
  var d = new Date();
  var dateArr = [];
  dateArr[0]=d.getFullYear();
  dateArr[1]=d.getMonth() + 1; //Months are zero based
  dateArr[2]=d.getDate();
  dateCell.setValue(dateArr.join('/'));

(n. b.: я не могу использовать скрипт, чтобы просто поместить =today() в ячейку, потому что все записи будут меняться каждый день. )

ПОЧЕМУ ОН РАБОТАЕТ ТОЛЬКО ПОСЛЕ 8: 00 УТРА? Google каким-то образом работает в другом часовом поясе, чем мой компьютер?? Я базируюсь в Великобритании, поэтому использую Но это не должно быть проблемой, не так ли?..?

2 2

2 ответа:

Попробуйте

var d = new Date();
var d = Utilities.formatDate(d, "GMT+1", "yyyy-MM-dd HH:mm:ss");

Я не уверен, что google распознает BST как часовой пояс, но вы также можете попробовать

var d = Utilities.formatDate(d, "BST", "yyyy-MM-dd HH:mm:ss");

Спасибо за ваше предложение, Aprillion.  Оказывается, что файл Google Sheets имеет свою собственную внутреннюю настройку часового пояса! который в моем случае был установлен на американское Тихоокеанское время (так что 8 часов позади)
(Вы могли бы подумать, что он будет автоматически получать информацию о дате и времени из Windows, как это делают другие приложения!)
Чтобы установить правильный часовой пояс листа, вам нужно перейти в Главное меню, нажать "Файл", затем "настройки электронной таблицы"...- и приспосабливаться по мере необходимости.
Сценарий и проверка сейчас все работает нормально.
Спасибо всем за вашу помощь.