这个问题有几个部分。我并不反对使用jQuery插件,如果有人知道一个将完成我想要的工作。
Q1 - 如何将分钟转换为小时,反之亦然?例如,我如何将90分钟转换为1小时30分钟。在下面的代码中,如何将“totalMin”转换并显示在“convertedHour”和“convertedMin”中?
HTML:
<span class="totalMin">90</span> Minutes
<span class="convertedHour">0</span> Hours
<span class="convertedMin">0</span> Minutes
jsFiddle: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
jsFiddle:http://jsfiddle.net/DX9YA/
Q3 - 我如何获取时间值(3小时30分钟)并将其添加到实时时间戳(例如上午10:30)?我如何考虑AM vs PM?
答案 0 :(得分:98)
Q1:
$(document).ready(function() {
var hours = Math.floor( $('.totalMin').html() / 60);
var minutes = $('.totalMin').html() % 60;
$('.convertedHour').html(hours);
$('.convertedMin').html(minutes);
});
Q2:
$(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);
});
答案 1 :(得分:51)
如果您想以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版本:)
function convertMinsToHrsMins(mins) {
let h = Math.floor(mins / 60);
let m = mins % 60;
h = h < 10 ? '0' + h : h;
m = m < 10 ? '0' + m : m;
return `${h}:${m}`;
}
答案 2 :(得分:20)
以下功能将按以下格式输入分钟数和输出时间:小时:分钟。 我使用了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"
答案 3 :(得分:5)
function parseMinutes(x){hours=Math.floor(x/60); minutes=x% 60;}
function parseHours(H,M){x=M+H*60;}
答案 4 :(得分:5)
var timeConvert = function(n){
var minutes = n%60
var hours = (n - minutes) / 60
console.log(hours + ":" + minutes)
}
timeConvert(65)
这会将1:5记录到控制台。这是一个简单易懂的简短解决方案,不需要jquery插件......
答案 5 :(得分:4)
用于以两种格式传输分钟的非常短的代码!
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"
答案 6 :(得分:1)
我冒昧地修改了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}`;
}
}
答案 7 :(得分:1)
由于ConnorLuddy的上述答案可以稍微改进,将分钟转换为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}`;
}
答案 8 :(得分:0)
不是jquery插件,但DateJS Library似乎可以满足您的需求。 Getting Started page有很多例子。
答案 9 :(得分:0)
替代支持旧版浏览器。
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;
}
}