我试图在几分钟内添加用户给出的时间,将它们转换为h:mm格式 问题是当总时间<= 23:59时,时刻JS给出了正确的结果但是如果它增加了,那么JS会改变当天并给出错误的结果。
例如,如果我转换120
分钟,它会给我2:00
但是在2273
的情况下,它会给我13:53
这是代码
var totalTimeInMin=2273;
var totalTimeInHours = moment.utc().startOf('day').add(totalTimeInMin, 'minutes').format('H:mm');
答案 0 :(得分:2)
你可以除以60,得到小时和模数分钟
var totalTimeInMin = 2273;
console.log(Math.floor(totalTimeInMin / 60) + ':' + totalTimeInMin % 60)
&#13;
答案 1 :(得分:0)
发布晚了,但是我认为下面的细节在这里很有用。
momentjs
中的 duration
也可用于计算持续时间的总时数和分钟数:
function minutes_to_hhmm (numberOfMinutes) {
//create duration object from moment.duration
var duration = moment.duration(numberOfMinutes, 'minutes');
//calculate hours
var hh = (duration.years()*(365*24)) + (duration.months()*(30*24)) + (duration.days()*24) + (duration.hours());
//get minutes
var mm = duration.minutes();
//return total time in hh:mm format
return hh+':'+mm;
}
console.log(minutes_to_hhmm(2273)); // 37:53
console.log(minutes_to_hhmm(220)); //3:40
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.28.0/moment.min.js"></script>
function
minutes_to_hhmm
可以根据duration constructor in the documentation轻松地适应其他时长,例如-小时,天,月等。