2011-01-14 49 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}`; 
    } 
} 
相關問題