Я собираюсь использовать Google лист в качестве базы данных для моего небольшого проекта приложения для Android.Я использую Google Script для обработки запроса из моего приложения.
В своем листе Google я храню;
A2: A = дата в виде дд / мм /гггг например 21/12/2019, но формат отображения дд-МММ, например, 21 декабря
C2: D = время в формате чч: мм: сс, например, 21:00:00, ноформат отображения: чч: мм, например, 21: 00
Да, мне нужен другой формат для отображения и ввода.
Мой лист Google:
Когда я использую скрипт Google, чтобы получить значение ячейки, кажется, что она переформатирована
дата выглядит так: Sat Jan 01 2019 00:00:00 GMT+0700 (ICT)
время, с другой стороны, немного изменить значение.20:00:00 до 19: 52: 48
Существует ли какая-либо функция для получения реальных значений ячеек в виде текста без переформатирования?
Единственное, о чем я могу думать, это вместо использованияgetValues (), я могу использовать getDisplayValues ().Значения не будут переформатированы, но это не решение для меня, поскольку оно будет принимать формат отображения.
Фрагмент моего кода:
function updateData(e, sheet) {
var tgl = e.parameter.tgl;
var dtg = e.parameter.dtg;
var plg = e.parameter.plg;
var lbr = e.parameter.lbr;
var rangeHead = sheet.getRange("A2:A");
var valuesHead = rangeHead.getValues();
var rangeFirst = sheet.getRange("C2:D")
var valuesFirst = rangeFirst.getValues();
var rangeSecond = sheet.getRange("G2:G")
var valuesSecond = rangeSecond.getValues();
for (var i = 0; i < valuesHead.length; i++) {
if (valuesHead[i][0] === tgl) {
if(dtg!="null") { valuesFirst[i][0] = dtg; }
if(plg!="null") { valuesFirst[i][1] = plg; }
if(lbr!="null") { valuesSecond[i][0] = lbr; }
break;
}
}
rangeFirst.setValues(valuesFirst);
rangeSecond.setValues(valuesSecond);
}
Код не будет работатькак я буду сравнивать 21/12/2019
с Sat Jan 01 2019 00:00:00 GMT+0700 (GMT)
.
[ОБНОВЛЕНИЕ 1]: Спасибо, П-Берк, за просветление.Теперь у меня есть идея решить проблему с датой.Я знаю, что сценарий извлекает дату как объект даты, но я не знаю, что он также сохраняет как объект даты.(хе-хе, мой плохой) Я не понимаю этого, так как нет автозаполнения, когда я вызываю значения [0] [0].конечно, поскольку он распознает тип объекта во время выполнения.
Итак, мой обходной путь будет;Я позвоню getDate, getMonth + 1 и getYear.После этого я буду свободно сравнивать со своим параметром.
Хотя временная ячейка все еще немного сбивает меня с толку.смещение по времени составляет 18 минут 12 секунд.Я не думаю, что это из-за разного часового пояса и моих компьютерных часов.другой часовой пояс слишком велик, и я позаботился о том, чтобы сценарий, электронная таблица и местный часовой пояс были одинаковыми.Мои компьютерные часы также отстают на одну минуту меньше.
[ОБНОВЛЕНИЕ 2]: Хорошо, достаточно путаницы.Казалось, что сценарий преобразует время в дату объекта относительно моего местного часового пояса.Я получил этот ответ из другой ветки.Так что, на самом деле, мой местный часовой пояс много раз менялся, и некоторые из них смещались меньше часовых единиц (один из часовых поясов, используемых в моей области, - это UTC +7: 07: 12h).Единственный источник, документирующий те изменения, которые я смог найти, - https://www.timeanddate.com/time/zone/indonesia/jakarta. Наконец, я сдался.Ради всего святого, я просто использую getDisplayValue и игнорирую секунды.Если у вас нет другого обходного пути, я буду очень благодарен.
Еще раз спасибо сообществу.