如何使用moment插件将分钟数转换为HH:mm时间格式
错误原因
原生 Moment.js 的 Duration 实例没有内置 format 方法,你当前使用的该方法属于第三方扩展能力,未引入对应扩展的情况下调用不会生效。
解决方案
方案1:引入 moment-duration-format 扩展
如果项目允许引入额外依赖,可以安装 Moment.js 的 moment-duration-format 扩展插件,引入后调整调用参数即可正常输出:
var x = moment('10:00', 'HH:mm'); var y = moment('11:30', 'HH:mm'); var diff = y.diff(x, 'minutes'); // 90 // 新增 trim 参数为 false 避免自动省略前导零 var convert = moment.duration(diff, "minutes").format('HH:mm', { trim: false }); alert(convert); // 输出 01:30
方案2:无额外依赖手动拼接
不想引入额外插件的话,可以手动拆分小时、分钟后补零拼接,代码更轻量:
var x = moment('10:00', 'HH:mm'); var y = moment('11:30', 'HH:mm'); var diff = y.diff(x, 'minutes'); // 90 const hours = Math.floor(diff / 60).toString().padStart(2, '0'); const minutes = (diff % 60).toString().padStart(2, '0'); const convert = `${hours}:${minutes}`; alert(convert); // 输出 01:30
内容的提问来源于stack exchange,提问作者john
相关产品推荐
相关产品推荐

