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

Google脚本问题:时间卡更正申请中时间格式显示异常求助

解决Google Apps Script中审批邮件的时间格式问题

我完全懂你现在的头疼——把休假申请的自动化工具改成时间卡更正应用后,明明表单里设置了「更正后时间」的问题,结果经理收到的审批邮件里,这个字段还是显示成完整的日期格式,不是你想要的纯时间。别慌,咱们一步步来搞定这个问题:

第一步:找到脚本里生成邮件内容的部分

首先打开你的Google Apps Script编辑器,找负责构建审批邮件的代码块。通常这部分会有这些特征:

  • 包含 MailApp.sendEmail() 或者 GmailApp.sendEmail() 方法
  • 会从表单响应或者关联的Google Sheets里读取「更正后时间」这个字段
  • 把字段内容拼接进邮件正文的字符串里

你可以直接搜索「更正后时间」(或者对应的字段英文名,如果是英文表单的话),或者找那些拼接邮件内容的代码段,很快就能定位到。

第二步:给时间字段加上格式化逻辑

找到读取「更正后时间」的代码后,你需要把这个日期对象转换成纯时间格式。这里有两种实用的方法:

方法1:快速生成本地化时间

用toLocaleTimeString()就能根据你的时区生成友好的时间格式,代码示例:

// 假设你从表单响应里拿到的时间字段是correctionTime(是个Date对象)
const formattedTime = correctionTime.toLocaleTimeString();
// 然后把原来邮件里的correctionTime替换成formattedTime就行

比如原来的邮件正文代码如果是...更正后时间:${correctionTime}...,改成...更正后时间:${formattedTime}...就好。

方法2:自定义时间格式(更灵活)

如果你需要指定格式,比如24小时制、带/不带秒数,就用Utilities.formatDate():

// 先获取脚本的时区,或者手动指定比如"Asia/Shanghai"
const timeZone = Session.getScriptTimeZone();
// 自定义格式:HH是24小时制,mm是分钟,ss是秒;如果要12小时制就用"h:mm a"
const formattedTime = Utilities.formatDate(correctionTime, timeZone, "HH:mm:ss");

把这个格式化后的formattedTime替换到邮件正文里对应的位置就行。

额外排查:检查Google Sheets的列格式

如果脚本改完还是没效果,去看看关联的Google Sheets里「更正后时间」列的格式:选中列,右键选「格式」>「数字」>「时间」,确保列本身设置成了时间格式,这样脚本读取的时候能更准确识别为时间类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:37:25