如何使用 jQuery 将分钟转换为小时/分钟并将各种时间值相加?

这个问题有几个部分。我不反对使用 jQuery 插件,如果有人知道一个插件可以完成我想做的事情的话。

如何将分钟转换成小时,反之亦然?例如,如何将90分钟转换为1小时30分钟。在下面的代码中,我将如何获得“ total Min”转换并显示在“ ConvertedHour”和“ ConvertedMin”中?

HTML:

<span class="totalMin">90</span> Minutes


<span class="convertedHour">0</span> Hours
<span class="convertedMin">0</span> Minutes

http://jsfiddle.net/ExFBD

Q2-我如何加起来一组时间槽?例如,如何将1小时30分钟,2小时45分钟和2小时15分钟加在一起?

HTML:

<span class="hour-1 hour">1</span> hour
<span class="min-1 min">30</span> min


<span class="hour-2 hour">2</span> hour
<span class="min-2 min">45</span> min


<span class="hour-3 hour">2</span> hour
<span class="min-3 min">15</span> min




<span class="totalHour">0</span> hour
<span class="totalMin">0</span> min

http://jsfiddle.net/DX9YA/

Q3-如何获取一个时间值(3小时30分钟)并将其添加到实时时间戳,如上午10:30?我该如何考虑上午和下午?

179957 次浏览

不是一个 jquery 插件,但是 日期 JS 图书馆看起来可以满足你的需要。

function parseMinutes(x) {
hours = Math.floor(x / 60);
minutes = x % 60;
}


function parseHours(H, M) {
x = M + H * 60;
}

问题1:

$(document).ready(function() {
var totalMinutes = $('.totalMin').html();


var hours = Math.floor(totalMinutes / 60);
var minutes = totalMinutes % 60;


$('.convertedHour').html(hours);
$('.convertedMin').html(minutes);
});

问题2:

$(document).ready(function() {


var minutes = 0;


$('.min').each(function() {
minutes = parseInt($(this).html()) + minutes;
});


var realmin = minutes % 60
var hours = Math.floor(minutes / 60)


$('.hour').each(function() {
hours = parseInt($(this).html()) + hours;
});




$('.totalHour').html(hours);
$('.totalMin').html(realmin);


});
var timeConvert = function(n){
var minutes = n%60
var hours = (n - minutes) / 60
console.log(hours + ":" + minutes)
}
timeConvert(65)

这将以1:5的比例记录到控制台。这是一个简短的解决方案,应易于理解,没有 jquery 插件是必要的..。

下面的函数将采用以下格式作为分钟的输入 # 和输出时间: 小时: 分钟。 我使用了 Math.trunc () ,这是2015年添加的一个新方法。它通过删除任何小数位来返回数字的整数部分。

function display(a){
var hours = Math.trunc(a/60);
var minutes = a % 60;
console.log(hours +":"+ minutes);
}


display(120); //"2:0"
display(60); //"1:0:
display(100); //"1:40"
display(126); //"2:6"
display(45); //"0:45"

如果您想返回00:00格式的字符串..。

convertMinsToHrsMins: function (minutes) {
var h = Math.floor(minutes / 60);
var m = minutes % 60;
h = h < 10 ? '0' + h : h;
m = m < 10 ? '0' + m : m;
return h + ':' + m;
}

谢谢你的赞同,这里有一个稍微整洁一点的 ES6版本:)

const convertMinsToHrsMins = (mins) => {
let h = Math.floor(mins / 60);
let m = mins % 60;
h = h < 10 ? '0' + h : h; // (or alternatively) h = String(h).padStart(2, '0')
m = m < 10 ? '0' + m : m; // (or alternatively) m = String(m).padStart(2, '0')
return `${h}:${m}`;
}

我擅自修改了 ConorLuddy 的答案,同时提到了24小时和12小时。

function minutesToHHMM (mins, twentyFour = false) {
let h = Math.floor(mins / 60);
let m = mins % 60;
m = m < 10 ? '0' + m : m;


if (twentyFour) {
h = h < 10 ? '0' + h : h;
return `${h}:${m}`;
} else {
let a = 'am';
if (h >= 12) a = 'pm';
if (h > 12) h = h - 12;
return `${h}:${m} ${a}`;
}
}

替换以支持较旧的浏览器。

function minutesToHHMM (mins, twentyFour) {
var h = Math.floor(mins / 60);
var m = mins % 60;
m = m < 10 ? '0' + m : m;


if (twentyFour === 'EU') {
h = h < 10 ? '0' + h : h;
return h+':'+m;
} else {
var a = 'am';
if (h >= 12) a = 'pm';
if (h > 12) h = h - 12;
return h+':'+m+a;
}
}

此代码可与时区一起使用

Javascript:

let minToHm = (m) => {
let h = Math.floor(m / 60);
h += (h < 0) ? 1 : 0;
let m2 = Math.abs(m % 60);
m2 = (m2 < 10) ? '0' + m2 : m2;
return (h < 0 ? '' : '+') + h + ':' + m2;
}


console.log(minToHm(210)) // "+3:30"
console.log(minToHm(-210)) // "-3:30"
console.log(minToHm(0)) // "+0:00"

minToHm(210)
"+3:30"


minToHm(-210)
"-3:30"


minToHm(0)
"+0:00"

非常短的代码传输分钟在两种格式!

let format1 = (n) => `${n / 60 ^ 0}:` + n % 60


console.log(format1(135)) // "2:15"
console.log(format1(55)) // "0:55"


let format2 = (n) => `0${n / 60 ^ 0}`.slice(-2) + ':' + ('0' + n % 60).slice(-2)


console.log(format2(135)) // "02:15"
console.log(format2(5)) // "00:05"

由于上述答案的康纳卢迪可以略有改善,有一个微小的变化,公式转换成 hours:mins格式分钟

const convertMinsToHrsMins = (mins) => {
let h = Math.floor(mins / 60);
let m = Math.round(mins % 60);
h = (h < 10) ? ('0' + h) : (h);
m = (m < 10) ? ('0' + m) : (m);
return `${h}:${m}`;
}

我的理论是我们无法预测 mins 的值总是一个整数。
函数中添加的‘ Math.round’将修正输出。
例如: 当分钟 = 125.3245时,使用此修复程序的输出为02:05,而不使用此修复程序的输出为02:05.3245000000000000005。

希望有人需要这个!