如何在Google Script中修改耗时的显示格式为mm:ss
时间字符串mm:ss提取及数组列格式修改方案
单条时间字符串提取方法
你拿到的日期字符串包含标准HH:mm:ss结构,有两种常用处理方式:
- 正则+字符串分割提取
使用正则匹配出时分秒片段后,截取分钟和秒部分即可,JavaScript示例代码:
const rawTime = "Sat Dec 30 1899 00:07:08 GMT-0800 (Pacific Standard Time)" const timePart = rawTime.match(/\d{2}:\d{2}:\d{2}/)[0] const targetFormat = timePart.split(':').slice(1).join(':') // 输出结果为 07:08
- 日期对象属性拼接
如果已经将字符串转为Date对象,直接读取分钟、秒属性拼接即可,兼容跨时区场景:
const rawTime = "Sat Dec 30 1899 00:07:08 GMT-0800 (Pacific Standard Time)" const timeObj = new Date(rawTime) const targetFormat = `${String(timeObj.getMinutes()).padStart(2,'0')}:${String(timeObj.getSeconds()).padStart(2,'0')}` // 输出结果为 07:08
数组单列批量修改格式
假设你需要处理的数组结构如下,要修改cost_time列为mm:ss格式:
const rawArr = [ {id:1, task:'整理文件', cost_time:"Sat Dec 30 1899 00:07:08 GMT-0800 (Pacific Standard Time)"}, {id:2, task:'数据导出', cost_time:"Sat Dec 30 1899 01:12:05 GMT-0800 (Pacific Standard Time)"} ]
遍历数组处理对应字段即可,示例代码:
// 耗时超过60分钟也能正常输出总分钟数的兼容方案 const formattedArr = rawArr.map(item => { const timeObj = new Date(item.cost_time) const totalSeconds = timeObj.getHours() * 3600 + timeObj.getMinutes() * 60 + timeObj.getSeconds() const mm = String(Math.floor(totalSeconds / 60)).padStart(2,'0') const ss = String(totalSeconds % 60).padStart(2,'0') return {...item, cost_time: `${mm}:${ss}`} }) // 处理后第二条数据的cost_time为 72:05,符合耗时格式要求
内容的提问来源于stack exchange,提问作者timothy duong
相关产品推荐
相关产品推荐

