2016-08-25 33 views
0

私はquartermonthhalfなどの日付タイプを変換するために取り組んでいる関数でmoment.jsを使用しています。jQueryとmoment .jsは日付から半分(h1 h2)を取得します

日付を指定すると、H1またはH2(前半または後半)にあるかどうかを判断する必要があります。

<input type="button" class="test" data-date="12/30/2016" data-type="day" value="Day"> 
<input type="button" class="test" data-date="04/30/2016" data-type="quarter" value="Quarter"> 
<input type="button" class="test" data-date="03/31/2016" data-type="half" value="Half"> 
<input type="button" class="test" data-date="07/25/2016" data-type="month" value="Month"> 

- ここ

// On click of a button 
$('.test').click(function(){ 
    var result = convertDate($(this).data('date'), $(this).data('type')); 
    $('.result').empty().append(result) 
}) 

// Given a date and type, return the conversion 
function convertDate(date, type){ 

     var output = ''; 

    switch(type){ 
     case 'day': 
     output = date; 
     break; 
     case 'quarter': 
     output = 'Q' + moment(date).quarter() + ' ' + moment(date).format('YYYY'); 
     break; 
     case 'half': 
     // Not sure how to get this 
     break; 
     case 'month': 
     output = moment(date).format('MMMM YYYY'); 
     break; 
    } 

    return output; 
} 

はフィドルです:https://jsfiddle.net/rmxydLuv/2/

あなたは機能の改善上の任意のヒントを持っている場合は、私もそれをいただければと思います。

+1

瞬間としてエラーを投げ、あなたのフィドルがロードされ、代わりに$( '結果 ')のいませんでした。空の()。(結果)を追加$を使用して('。結果')。htmlの(結果)新しいテキストで結果テキストを完全に変更します。 –

+0

フィドルが私のために働いていて、4つのボタンのうち3つが意図したとおりにうまく動作します。問題は、日付から半分(h1 h2)を決定することです。 – SBB

答えて

3

H1またはH2を四半期に基づいて計算できます。

case 'half': 
    output = moment(date).quarter() <= 2 ? "H1" : "H2" + ' ' + moment(date).format('YYYY'); 
    break; 

DEMO

+1

完璧、ありがとう! – SBB

関連する問題