我有一个由表格填写的谷歌电子表格。有些列只包含时间(例如2:00:00),并按表单元素日期放置。 当我使用getRange从此电子表格中读取数据,并注销此类单元格的值(随时间)时,记录器会向我报告:
周六12月30日1899 02:18:48 GMT + 0400(消费税)
我看到数据的读取格式不正确。 如何获得像存储在工作表中的严格时间数据? 有人遇到过这样的问题吗?
P.S。我发现了一个旁路,但它不是自动的。我必须将单元格格式更改为简单文本,然后获得有效输出。但我想知道我是否可以通过代码从单元格或范围获取平面文本?
它看起来像单元格的表单设置日期格式,只放入时间值,但你不能得到时间。
答案 0 :(得分:0)
经过多次实验,我已经找到了一个基本的解决方案。我希望Google能够更新从表格中添加时间的方式。我所做的是采用00:00:00时间的毫秒值并在给定时间内取得差异,然后使用一些简单的数学计算得出时间和分钟。
function extractTime(date) {
var milliseconds = date.getTime()+2209203000000;
var time = {};
time.hours = Math.floor(milliseconds/(1000*60*60));
time.minutes = Math.round((milliseconds/(1000*60*60)-time.hours)*60);
return time;
}
已经过测试,似乎有效。
我也在my own question中就此发布了这个答案。