You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Apps Script 时间戳数组时分秒批量归零的实现问题

修正方案

你遇到的问题核心是:getValues() 方法返回的是二维数组,结构为[行索引][列索引],你读取的是A列1到10行数据,需要取rn[i][0]才能拿到对应行的Date对象,直接对数组整体调用setHours方法肯定无法生效。

修正后的完整代码如下:

function timestampFormat(){
  var SS = SpreadsheetApp.openById('xxx')
  var sheet = SS.getSheetByName("S1")
  // 读取A列1-10行的所有值
  var rn = sheet.getRange(1,1,10).getValues();
  var formDates = [];
  for (var i = 0; i < rn.length; i++){
    // 取出当前行的日期值,单列数据的列索引为0
    var currentDate = rn[i][0];
    // 仅对有效日期做处理,避免空单元格、非日期内容报错
    if(currentDate instanceof Date) {
      var formattedDate = new Date(currentDate.setHours(0,0,0,0));
      // 按二维数组结构存储,方便后续直接写回表格
      formDates.push([formattedDate]);
    } else {
      // 非日期内容保持原样
      formDates.push([currentDate]);
    }
  }
  Logger.log(formDates);
  // 如需将处理后的结果写回原A列1-10行,取消下方注释即可
  // sheet.getRange(1,1,formDates.length,1).setValues(formDates);
}

补充说明

  • 如果需要处理A列所有有内容的行,可将读取范围替换为sheet.getRange(1,1,sheet.getLastRow(),1),不用手动固定行数
  • 所有结果按二维数组结构存储,适配Google Sheets的setValues方法参数要求,写回数据不用额外转换

数组中的时间戳

内容的提问来源于stack exchange,提问作者S1ARHE1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 16:15:07