在JavaScript中如何从Date对象仅返回HH:mm格式的时间
实现方案
有以下几种常用实现方式:
方法1:直接修改substr截取长度
你原代码里的substr(11, 8)是从ISO字符串的第11位开始截取8个字符(对应HH:mm:ss格式),只需要把截取长度改成5即可直接得到HH:mm格式:
var seconds = 8274; new Date(seconds * 1000).toISOString().substr(11, 5) // 输出结果:"02:17"
方法2:分割字符串后拼接
如果需要更高的灵活性,可以先拿到完整的时分秒字符串,再按冒号分割取前两位拼接:
var seconds = 8274; new Date(seconds * 1000).toISOString().substr(11, 8).split(':').slice(0,2).join(':') // 输出结果:"02:17"
方法3:手动计算(支持超过24小时的场景)
上面两种方法仅适用于秒数小于86400(即1天总秒数)的场景,如果需要处理超过1天的秒数,建议直接手动计算小时和分钟,避免日期进位导致的结果错误:
var seconds = 8274; const hours = String(Math.floor(seconds / 3600)).padStart(2, '0'); const minutes = String(Math.floor((seconds % 3600) / 60)).padStart(2, '0'); const result = `${hours}:${minutes}`; // 输出结果:"02:17"
内容的提问来源于stack exchange,提问作者sadique mohammed
相关产品推荐
相关产品推荐

