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

如何用Vanilla JS将秒数时长转换为人类易读格式?

将秒数转换为人类可读的时长格式(Vanilla JS)

需求说明

需要把以秒为单位的整数转换为人类易读的中文时长格式,示例如下:

时长(秒)人类易读格式
2424秒
4307分钟10秒
60010分钟
36001小时
74772小时4分钟37秒

尝试过Intl.DateTimeFormat会附带日期部分,Intl.RelativeTimeFormat仅支持单一单位,均无法满足需求。


自定义实现方案

以下是纯JS的自定义函数,通过拆分时长单位、过滤非零部分来生成目标格式:

function formatSecondsToReadable(seconds) {
  const hours = Math.floor(seconds / 3600);
  const remainingAfterHours = seconds % 3600;
  const minutes = Math.floor(remainingAfterHours / 60);
  const remainingSeconds = remainingAfterHours % 60;

  const parts = [];
  if (hours > 0) parts.push(`${hours}小时`);
  if (minutes > 0) parts.push(`${minutes}分钟`);
  // 若前面无有效单位(如输入0秒),或剩余秒数不为0,则添加秒数部分
  if (remainingSeconds > 0 || parts.length === 0) {
    parts.push(`${remainingSeconds}秒`);
  }

  return parts.join('');
}

// 测试示例
console.log(formatSecondsToReadable(24));      // 输出:24秒
console.log(formatSecondsToReadable(430));     // 输出:7分钟10秒
console.log(formatSecondsToReadable(600));     // 输出:10分钟
console.log(formatSecondsToReadable(3600));    // 输出:1小时
console.log(formatSecondsToReadable(7477));    // 输出:2小时4分钟37秒

逻辑说明

  1. 通过数学运算拆分出小时、分钟、剩余秒数
  2. 只收集数值大于0的单位部分,避免出现“0小时”这类无效内容
  3. 特殊处理秒数:当小时和分钟都为0时,强制显示秒数(比如输入0秒时输出“0秒”)
  4. 最后将所有有效部分拼接成完整字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 09:57:33