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

Google Apps Script处理ISO格式日期转星期及日期差值计算咨询

前置说明

你拿到的2021-09-21T03:28:13+0000属于标准ISO 8601格式日期字符串,Google Apps Script基于JavaScript运行,原生支持直接通过new Date()构造函数解析该格式,无需额外做字符串切割处理。

1. 转换为星期几格式

直接调用Date对象的toLocaleDateString方法,指定输出规则即可获取星期文本,示例代码如下:

// 入参为上述格式的日期字符串,输出英文星期全称
function getWeekDay(dateStr) {
  const date = new Date(dateStr);
  // 如需输出中文星期,将'en-US'替换为'zh-CN'即可
  return date.toLocaleDateString('en-US', { weekday: 'long' });
}

用你提供的示例日期2021-09-21T03:28:13+0000测试,返回结果为Tuesday。

2. 日期差值计算

Date对象的getTime()方法可以获取对应时间的毫秒级时间戳,两个日期的时间戳相减即可得到差值,再按需换算为秒、分钟、小时、天等单位即可,示例代码如下:

// 计算任务完成耗时,返回单位为秒
function getTaskDuration(startTimeStr, endTimeStr) {
  const startTime = new Date(startTimeStr);
  const endTime = new Date(endTimeStr);
  const diffMilliseconds = endTime.getTime() - startTime.getTime();
  // 换算为其他单位:除以对应的毫秒数即可,如分钟是60*1000,小时是3600*1000,天是86400*1000
  return Math.round(diffMilliseconds / 1000);
}

// 计算受邀到启动任务的间隔天数,不足1天按0计算
function getInviteToStartGap(inviteTimeStr, startTimeStr) {
  const inviteTime = new Date(inviteTimeStr);
  const startTime = new Date(startTimeStr);
  const diffMilliseconds = startTime.getTime() - inviteTime.getTime();
  return Math.floor(diffMilliseconds / (1000 * 3600 * 24));
}

用你提供的示例数据测试:

  • 任务完成耗时为22秒
  • 受邀到启动任务的间隔为0天

注意:默认按UTC时区解析日期,和你传入的日期字符串后缀+0000匹配,如需按东八区计算,在获取Date对象后添加8小时的时间戳偏移即可,示例:date.setTime(date.getTime() + 8 * 3600 * 1000)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:36:04