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

sev*_*ens 60 javascript time jquery

这个问题有几个部分.我不反对使用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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

jsFiddle:http://jsfiddle.net/DX9YA/

Q3 - 如何获取时间值(3小时30分钟)并将其添加到实时时间戳(如上午10:30)?我如何考虑AM vs PM?

nun*_*nia 106

Q1:

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

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

    $('.convertedHour').html(hours);
    $('.convertedMin').html(minutes);    
});
Run Code Online (Sandbox Code Playgroud)

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);    

});
Run Code Online (Sandbox Code Playgroud)

  • `const convert =(n)=> \`0 $ {n/60 ^ 0} \`.slice(-2)+':'+('0'+ n%60).slice(-2)` (4认同)

Con*_*ddy 58

如果你想以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;
}
Run Code Online (Sandbox Code Playgroud)

感谢上选票.这是一个稍微整洁的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}`;
}
Run Code Online (Sandbox Code Playgroud)

  • 这是我最喜欢的答案,因为它解决了"00:00"格式 (3认同)

小智 21

以下功能将按以下格式输入分钟数和输出时间:小时:分钟.我使用了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"
Run Code Online (Sandbox Code Playgroud)


Mal*_*alk 5

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

function parseHours(H, M) {
  x = M + H * 60;
}
Run Code Online (Sandbox Code Playgroud)

  • 只是将几行代码转储到文本框中并不能解决问题. (18认同)

Max*_*lll 5

var timeConvert = function(n){
 var minutes = n%60
 var hours = (n - minutes) / 60
 console.log(hours + ":" + minutes)
}
timeConvert(65)
Run Code Online (Sandbox Code Playgroud)

这将以1:5的比例登录到控制台.这是一个简单易懂的简短解决方案,不需要jquery插件......


Иль*_*ько 5

非常短的代码,用于以两种格式传输分钟!

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"
Run Code Online (Sandbox Code Playgroud)