如何从谷歌表获取时间价值

时间:2014-08-25 15:14:48

标签: google-apps-script

我有一个由表格填写的谷歌电子表格。有些列只包含时间(例如2:00:00),并按表单元素日期放置。 当我使用getRange从此电子表格中读取数据,并注销此类单元格的值(随时间)时,记录器会向我报告:

  

周六12月30日1899 02:18:48 GMT + 0400(消费税)

我看到数据的读取格式不正确。 如何获得像存储在工作表中的严格时间数据? 有人遇到过这样的问题吗?

P.S。我发现了一个旁路,但它不是自动的。我必须将单元格格式更改为简单文本,然后获得有效输出。但我想知道我是否可以通过代码从单元格或范围获取平面文本?
它看起来像单元格的表单设置日期格式,只放入时间值,但你不能得到时间。

1 个答案:

答案 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中就此发布了这个答案。