Google apps script 为什么GoogleSheets或GoogleAppScript不能为我提供与显示内容相同的时间值? 上下文
我有一个RESTful API,它是在谷歌工作表上用谷歌应用程序脚本构建的。其中一个Google apps script 为什么GoogleSheets或GoogleAppScript不能为我提供与显示内容相同的时间值? 上下文,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一个RESTful API,它是在谷歌工作表上用谷歌应用程序脚本构建的。其中一个doGet()请求将从一个以传统的列/行(类似数据库)方式(稍后描述的结构)存储的工作表选项卡中检索数据。简单地说,doGet()将调用另一个函数来获取数据,然后将该数据编码为客户端的JSON响应 表中的数据 这就是工作表上的数据 日期 位置 移位 名称 开始 结束 4-1-2021 可湿性粉剂 坎图尔一号 丹尼 9:00 17:00 4-1-2021 BK 巴克瑞一世 内奥米 9:00 17:00 4-1-20
doGet()
请求将从一个以传统的列/行(类似数据库)方式(稍后描述的结构)存储的工作表选项卡中检索数据。简单地说,doGet()
将调用另一个函数来获取数据,然后将该数据编码为客户端的JSON响应
表中的数据
这就是工作表上的数据
日期
位置
移位
名称
开始
结束
4-1-2021
可湿性粉剂
坎图尔一号
丹尼
9:00
17:00
4-1-2021
BK
巴克瑞一世
内奥米
9:00
17:00
4-1-2021
CK
角一
菲德尔
7:00
16:00
...
...
...
...
...
...
在JS中,日期总是有点复杂 你可以试试这个脚本,它对我有用。您可以更改日期和时区的格式
const sheet = SpreadsheetApp.openById("ZZZZZZZ");
const data = sheet.getSheetByName("XXX").getDataRange().getValues();
function getData(){
data.forEach(dates => {
var date = Utilities.formatDate(new Date(dates), "GMT+2", "MM/dd/yyyy");
console.log(date);
})
}
工作表:
输出:
在JS中,日期总是有点复杂 你可以试试这个脚本,它对我有用。您可以更改日期和时区的格式
const sheet = SpreadsheetApp.openById("ZZZZZZZ");
const data = sheet.getSheetByName("XXX").getDataRange().getValues();
function getData(){
data.forEach(dates => {
var date = Utilities.formatDate(new Date(dates), "GMT+2", "MM/dd/yyyy");
console.log(date);
})
}
工作表:
输出:
您收到日期的原因是因为
getValues
返回日期类型的对象。但是,此对象是根据表示其时间零点的图纸-12/30/1899 0:00:00
改编的
因此,解决方法是使用getDisplayValues
而不是getValues
。这将最终返回图纸中显示的实际值
参考文献
getValues
返回日期类型的对象。但是,此对象是根据表示其时间零点的图纸-12/30/1899 0:00:00
改编的
因此,解决方法是使用getDisplayValues
而不是getValues
。这将最终返回图纸中显示的实际值
参考文献
getValues()
和getDisplayValues()
之间的区别。这个答案节省了很多时间。感谢您指出getValues()
和getDisplayValues()
之间的区别。