求助:JavaScript实现分钟转小时/天数功能(超24h自动转天)
解决分钟转时长(支持天/小时/分钟)的问题
没问题,我来帮你搞定这个时长转换的需求!咱们的核心逻辑就是先把分钟转换成总小时数,再拆分出天数和剩余小时数,最后加上剩余的分钟数就行,一步一步来拆解:
核心思路
- 先计算总小时数:用输入的分钟数除以60,取整数部分
- 从总小时数里拆分天数:总小时数除以24,取整数部分就是天数
- 计算剩余小时数:总小时数对24取余,得到不够一天的剩余小时
- 计算剩余分钟数:输入的分钟数对60取余,得到不够一小时的剩余分钟
修改后的完整代码
// 分钟转天/小时/分钟转换器 function ConvertMinutes(num) { // 计算总小时数 const totalHours = Math.floor(num / 60); // 计算天数 const days = Math.floor(totalHours / 24); // 剩余小时数(总小时数减去天数对应的小时数) const remainingHours = totalHours % 24; // 剩余分钟数 const remainingMinutes = num % 60; // 拼接结果,根据是否有天数来返回不同格式 let result = ''; if (days > 0) { result += `${days}天`; } if (remainingHours > 0 || days > 0) { // 有天数时即使小时为0也显示,比如1天0小时 result += `${remainingHours}小时`; } if (remainingMinutes > 0 || result === '') { // 没有天和小时时,只显示分钟 result += `${remainingMinutes}分钟`; } return result; }
测试几个例子验证
- 输入
1440(刚好24小时):返回1天0小时0分钟 - 输入
1500(25小时):返回1天1小时0分钟 - 输入
65(1小时5分钟):返回1小时5分钟 - 输入
30(只有30分钟):返回30分钟 - 输入
2885(2天0小时5分钟):返回2天0小时5分钟
这样就完全满足你“时长超过24小时自动转换为X天Y小时”的需求啦,你可以根据自己的UI需要调整结果的拼接格式,比如要不要显示0分钟之类的,灵活修改就行~
内容的提问来源于stack exchange,提问作者Cody
相关产品推荐
相关产品推荐

