2011-01-14 12 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

+5

http://www.doxdesk.com/img/updates/20091116-so-large.gif – goat

答えて

71

Q1:

$(document).ready(function() { 
    var hours = Math.floor($('.totalMin').html()/60);   
    var minutes = $('.totalMin').html() % 60; 


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

}); 

Q2:コンソールに5:

$(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

ありがとう、nunoplonia。これは完全に機能しました。 – sevens

0

jqueryプラグインではありませんが、DateJS Libraryが必要なように見えます。 Getting Started pageには多くの例があります。

+0

ありがとう、私はそれをチェックアウトします。 – sevens

+8

深刻ですか?それは問題の答えではありません!なぜあなたはDateJSのやり方を見せないのですか? –

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

2行のコードをテキストボックスにダンプするだけでは答えられません。 –

+0

嬉しいですね:) –

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

これは1を記録します。これは理解しやすく、jqueryプラグインが不要な簡潔でシンプルなソリューションです...

14

以下の関数は入力時間(分)と出力時間を時間:分の形式で受け取ります。 2015年に追加された新しいメソッドであるMath.trunc()を使用しました。これは、小数点を削除して整数の整数部分を返します。あなたは夜12時形式の文字列を返すようにしたい場合は

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" 
+0

_... 2015_に追加された新しいメソッドです。** 2015 **、**バージョン番号**はより明確で快適です。ありがとうございました。 – fWd82

+0

どこでもこのフォーマットの用途はありますか?一貫したHH:MMフォーマットが欠けていると、それはかなり無駄になります。 – Leonard

+1

@レオナード - ソリューションは上記の質問に関係します。この関数を使用すると、分を指定した場合は時間と残り時間を返すことができます。他にも多くのユースケースがありますが、これはすべてのユースケースをリストアップする場所ではなく、上記の質問に当てはまるものだけです。 –

22

...アップ票ため

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

"00:00"のフォーマットに対応しているので、これは私の好きな答えです –

+0

嬉しいです:) – ConorLuddy

0

私が24時間と12時間の時間の両方に対処するConorLuddyの答えを変更する自由を取りました。

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}`; 
    } 
} 
関連する問題