2016-11-18 5 views
0

時間を定義するにはいくつかの問題があります。時間を3つの時間タイプに分けて朝、夕方、夜にしたいと思っています。 時刻が00:00から10:00に開始する場合は、時刻タイプは朝、 時刻が10:01から18:00に開始する場合は、時刻タイプは夕方、 時刻が18:01から23:59までの場合は、タイプが夕方です。時間は、私はこのjavascriptで正規表現を区切る方法時間形式

$(document).ready(function(){ 
    $('#submit').on('click',function(){ 

     var hrs=$('#hours').val(); 
     var nm=$('#scedule').val(); 

     var patt = new RegExp("^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$"); 
      var patts = patt.test(hrs); 

     //morning = 00:00 - 10:00 
     var morn = new RegExp("^([0-9]|0[0-9]|1[0-9]):[0-5][0-9]$"); 
      var morning = morn.test(hrs); 

     //evening = 10:01 - 18:00 
     var even = new RegExp("^(1[0-9]|[0-9]):[0-5][0-9]$"); 
      var evening = even.test(hrs); 

     //night = 18:01 - 00:00 
     var nig = new RegExp("^(1[0-9]|2[0-3]):[0-5][0-9]$"); 
      var night = nig.test(hrs); 

     if (patts == morning) { 
      alert('This is Morning'); 
     } else if (patts == evening){ 
      alert('This is Evening'); 
     } else if (patts == night){ 
      alert('This is night'); 
     } else { 
      alert('Format is wrong'); 
     } 
    }); 
}); 

のようなコードのjQueryを持っており、これは私のフォームのHTMLで、 夜です:あなたはちょうど使用し、ここで正規表現を必要としない

Scedule : <input type="text" id="scedule"><br> 
    Time : <input type="text" id="hours"><br> 
    <input type="submit" value="submit" id="submit"><br> 
+0

なぜ正規表現が必要ですか? if(hrs <= "10:00") '、' if(hrs> "10:00" && hrs <= "18:00") '、' if(hrs> "18:00")、 ) '? – wdosanjos

+0

@wdosanjosこれは、ltとgt演算子が数値文字列でうまく動作しないためです。 '" 9:00 ">" 10:00 "'などとなります。 –

+0

@RoryMcCrossan入手しました。テストの前に文字列 'if(hrs.length <5)hrs = '0' + hrs'を正規化し、正規表現を使用する方が簡単です。 – wdosanjos

答えて

0

Date

$(document).ready(function(){ 
 
    $('#submit').on('click',function(){ 
 

 
     var hrs=$('#hours').val(); 
 
     if(hrs.length != 5 || hrs.indexOf(':') < 0) 
 
     { 
 
      alert("Wrong Fromat") 
 
      return; 
 
     } 
 

 
     var date = new Date(); 
 
     date.setHours(hrs.split(":")[0]); 
 
     date.setMinutes(hrs.split(":")[1]); 
 
     console.log(date) 
 
     
 
     
 

 
     if (date.getHours() < 10) { 
 
      console.log('This is Morning'); 
 
     } else if (date.getHours() > 18 && date.getMinutes > 0){ 
 
      console.log('This is night'); 
 
     } else{ 
 
      console.log('This is Evening'); 
 
     } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
    Time : <input type="text" id="hours"><br> 
 
    <input type="submit" value="submit" id="submit"><br>

関連する問題