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

如何在Ruby中将秒数转换为可读格式(如111.700秒转1:51.7)

秒数转可读时间格式的实现方案

核心逻辑是把总秒数拆分为分钟和剩余秒数,再将剩余秒数保留一位小数后拼接成分钟:秒数的格式,以下是具体实现:

Python 实现

def format_seconds(total_seconds):
    # 计算整数分钟数
    minutes = int(total_seconds // 60)
    # 计算剩余秒数
    remaining_seconds = total_seconds % 60
    # 格式化剩余秒数为1位小数,自动去除末尾多余的0
    formatted_sec = "{0:.1f}".format(remaining_seconds)
    # 处理如"51.0"这类情况,转为"51"
    if formatted_sec.endswith('.0'):
        formatted_sec = formatted_sec[:-2]
    return f"{minutes}:{formatted_sec}"

# 测试示例
print(format_seconds(111.700))  # 输出: 1:51.7
print(format_seconds(120.0))    # 输出: 2:0
print(format_seconds(75.300))   # 输出: 1:15.3

JavaScript 实现

function formatSeconds(totalSeconds) {
    // 取整数分钟
    const minutes = Math.floor(totalSeconds / 60);
    // 计算剩余秒数并保留1位小数
    let remainingSeconds = (totalSeconds % 60).toFixed(1);
    // 去除末尾的.0
    if (remainingSeconds.endsWith('.0')) {
        remainingSeconds = remainingSeconds.slice(0, -2);
    }
    return `${minutes}:${remainingSeconds}`;
}

// 测试示例
console.log(formatSeconds(111.700)); // 输出: "1:51.7"
console.log(formatSeconds(90.0));    // 输出: "1:30"

逻辑拆解

  • 分钟数:总秒数整除60,取整数部分,比如111.7 // 60 = 1。
  • 剩余秒数:总秒数对60取模,得到不足1分钟的部分,比如111.7 % 60 = 51.7。
  • 格式处理:将剩余秒数保留1位小数,同时去掉末尾多余的.0,保证输出简洁符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 18:42:49