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

如何为复制的单元格时间戳增加5小时后粘贴至目标单元格?

修改后的脚本
function fill() {
  const tss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = tss.getSheetByName("data");
  const values = sheet.getRange("C:C").getValues();

  for (let i = 0; i < values.length; i++) {
    const value = values[i][0];

    if (value === "") {
      const rangeA = sheet.getRange(i + 1, 2);
      const rangeB = sheet.getRange(i + 1, 3);

      if (!rangeA.isBlank()) {
        // 获取原时间并转换为毫秒数,加上5小时对应的毫秒值
        const originalTime = rangeA.getValue();
        const newTime = new Date(originalTime.getTime() + 5 * 60 * 60 * 1000);
        // 设置目标单元格的日期格式并写入新时间
        rangeB.setNumberFormat("dd.MM.yyyy HH:mm:ss");
        rangeB.setValue(newTime);
      }
    }
  }
}

关键修改说明

  • 用JavaScript Date对象的毫秒数计算来处理时间增量,避免Google Sheets数值存储时间可能带来的精度问题
  • 通过setNumberFormat("dd.MM.yyyy HH:mm:ss")强制指定输出格式,确保结果完全符合31.01.2024 13:02:34的要求
  • 修正了原代码中rangeB定义里的无效字符+'0,125',修复了范围定义错误
  • 替换var为const/let,提升代码的作用域安全性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 12:50:14