2011-01-14 142 views
33

这个问题有几个部分。我不反对使用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 

的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和PM?

+0

感谢您的见解,马克。我明显在寻求代码帮助来做到这一点。 – sevens 2011-01-14 03:39:06

+5

http://www.doxdesk.com/img/updates/20091116-so-large.gif – goat 2011-01-14 03:51:31

回答

71

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

}); 
0

不是jQuery的插件,但DateJS Library似乎做你所需要的。 Getting Started page有很多例子。

+0

谢谢,我会检查出来。 – sevens 2011-01-14 03:39:53

+8

严重吗?这不是问题的答案!你为什么不演示如何处理DateJS? – 2013-06-16 19:57:04

5
function parseMinutes(x){hours=Math.floor(x/60); minutes=x% 60;} 
function parseHours(H,M){x=M+H*60;} 
+16

只是倾倒几行代码到文本框中并不能解决问题。 – 2012-10-05 12:25:36

+0

很高兴你喜欢它:) – 2017-10-30 06:58:44

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

这将记录1:5到控制台。这是一个简单而简单的解决方案,应该很容易理解,并且不需要jquery插件...

14

下面的函数将采用以下格式输入分钟数和输出时间:小时:分钟。 我使用了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" 
22

在你想在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}`; 
} 
0

我把修改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}`; 
    } 
} 
相关问题