我正在研究Google电子表格和LINE Message API(BOT(之间的集成,其中Google应用程序脚本是后端。
我从Google电子表格中获取日期格式单元格并发送到LINE机器人,但消息回复显示了不同的东西。 在谷歌电子表格的单元格中
1/5/2020
在谷歌应用脚本中,我首先对其进行了编码
var colb = ss.getSheets()[0].getRange(i+3, 2).getValue();
但LINE消息,它默认发送包含时区的格式
周日 1月 05 2020 00:00:00 GMT+0700 (ICT(
所以我编码了它
var colb = Utilities.formatDate(ss.getSheets()[0].getRange(i+3, 2).getValue(), ss.getSpreadsheetTimeZone(), "dd/MM/YY");
这个是有效的,但是当单元格为空时它不起作用,我不知道为什么。所以有人请帮我解决这个问题。提前致谢
如果需要在日期转换不起作用时colb
包含原始值(包括空(,则可以执行以下操作:
var value = ss.getSheets()[0].getRange(i+3, 2).getValue();
var colb = (typeof value == "object" && value instanceof Date) ? Utilities.formatDate(value, ss.getSpreadsheetTimeZone(), "dd/MM/YY") : value;
如果单元格为空并且您想使用 Utilities.formatDate,我会这样做:
var colb = " " || Utilities.formatDate(ss.getSheets()[0].getRange(i+3, 2).getValue(), ss.getSpreadsheetTimeZone(), "dd/MM/YY");
因此,如果单元格中没有值,只需分配默认值" ">