2016-08-26 18 views
3

私はmomentJSと時間を比較しようとしています。ここで私はこのresullt 01:44を取得console.log(today.format("hh:mm"))から私のスクリプトは時間をMomentJSと比較する

$(document).ready(function() { 
var today =moment(); 
console.log(today.format("hh:mm")); 
    if((today.format('D') == (moment().day("Sunday").format('D')) || (today.format('D') == moment().day('Saturday').format('D')))) 
     { 
      $('.kompensasi').val("100,000"); 
      $('.chk').hide(); 
     } 
    else{  
     if((today.format("hh:mm") > moment('00:00', 'hh:mm')) && (today.format("hh:mm") < moment('03:00', 'hh:mm'))) 
       { 
        $('.kompensasi').val("30,000"); 
        $('.cekbok').val(''); 
       }else{ 
        $('.cekbok').val('Dapet RO 1'); 
        $('.kompensasi').val("0"); 
       } 
     } 
}); 

であり、ここで私のフォームは

ある
<div class="col-sm-7"> 



      Kompensasi : <input name="dapet" type="text" readonly class="kompensasi" /> 
      </div> 
    </div> 
      <div class="form-group chk"> 
         <label class="col-sm-3 control-label">Ro</label> 
         <div class="col-sm-7"> 
         <input type="text" class='cekbok' name='rostatus' /> 
         </div> 
      </div> 

私のスクリプトでは、私はいつもelseに行くので、それを修正する方法はありますか?ここで

は私のバイオリンhttps://jsfiddle.net/s9wfh9ye/33/

マイUpated質問

var today =moment(); 
    var after = moment(today.format("hh:mm")).isAfter(moment('00:00', "hh:mm")); 
    var before = moment(today.format("hh:mm")).isBefore(moment('03:00', "hh:mm")); 

     today.format('hh:mm').valueOf() -->02:17 

     moment('00:00', 'hh:mm').valueOf() --> 1472058000000 

     moment('03:00', 'hh:mm').valueOf() -->1472068800000 



    console.log(after); // false 

console.log(before); // false 
+1

[モーメントjs日付時間比較]の可能な複製(http://stackoverflow.com/questions/22600856/moment-js-date-time-comparison) –

+0

'moment('00:00 '、' hh:mm ') 'は、 'today.format(" hh:mm ")'が文字列を返すので、それらを比較しないでください。 –

+1

@ArunPJohny:文字列を時間的に比較しないでください。代わりに整数を比較してください。 '.valueOf()'を使用して、時刻をunixタイムスタンプに変換してください。 – slebetman

答えて

4

あなたは数に瞬間を変換する必要が==または<または>を使用することです。これを行うには.valueOf()を使用します。たとえば:

today.isBefore(moment('03:00', 'hh:mm')) 

あなたは.isBefore().isAfter().isSame().isSameOrBefore()など詳細はドキュメントを読んで使用することができます:http://momentjs.com/docs/#/query/

today.valueOf() < moment('03:00', 'hh:mm').valueOf() 

はしかし、moment.jsも読みやすい方法を提供します

+0

'isAfter'と' IsBefore'を使用しようとしています。更新された質問を確認してください。 – YVS1102

+0

@ YVS1102:申し訳ありません。モーメントオブジェクトで '.valueOf()'と '.isAfter()'を呼び出します。 '.format()'によって生成された文字列ではありません。私のコード例を修正 – slebetman