2016-05-06 11 views
0

私はちょっと迷惑だし、まだJavaScriptには比較的新しいです。私はこのコードを書いた:Javascript - .getHours()が動作しない

<script> 
    var today = new Date(); 
    var str =''; 
    str = today.getHours(); 

    if (str >=5 && str <=10) 
    { 
     alert("Wow you're up early!, good morning"); 
    } 
    if (str >= 11 && str <= 1) 
    { 
     alert("Good Morning"); 
    } 
    if (str >=2 && str <= 21) 
    { 
     alert("Good evening"); 
    } 
    if(str >= 22 && str <= 4) 
    { 
     alert("Good night"); 
    } 

基本的には、警告ボックスが来ていません。 getHoursの機能をgetUTCHoursに変更しても、それは起こりますが。残念ながら、それは1時間遅れているので使用できません。だから誰も私の警告ボックスが来ていない理由を知っていますか?

+3

かかわらオフセット 'STR> = 11 && STR <= 1 ' - どのようにそれは今まで本当のことができますか? 10 **と**未満の数字は何ですか? 'str> = 22 && str <= 4'の場合も同様です。 – Pointy

+0

注:これは' var str = today.getHours() 'にする必要があります。それを空の文字列として初期化し、それを別のものに置き換えるのは無意味です。 – tadman

+0

これをページに貼り付けて、それを2回、最初の1回と「良い夜」に2回警告しました。ここでの時間は7です。時間が正しく取られています。調整が必要な条件文です。 – gavgrif

答えて

0

条件が間違っているので:例えば、今、夜12時、あなたは「おやすみなさい」メッセージをしたいだろうが、0> = 22と< = 4

2

あなたがいないことはできませんあなたの範囲に特化している必要があります。また、VARに含まれるデータが整数である場合は特に、strのようなVAR名を使用していない...それはちょうど非常に紛らわしい

var now = new Date(); 
var hour = now.getHours(); 

if (hour < 5) 
    alert('Goodnight'); 
else if (hour < 10) 
    alert("Wow you're up early! Good morning."); 
else if (hour < 14) 
    alert("Good morning"); 
else if (hour < 21) 
    alert("Good evening"); 
else 
    alert("Goodnight") 

だあなたはつもり右、「それはしかし、吸う」と言っていますか? "Goodnight"シナリオを2回指定する必要があるためです。簡単に固定することができ

var now = new Date(); 
var hour = now.getHours(); 
hour = hour - 5; // offset 

if (hour < 5) 
    alert("Wow you're up early! Good morning.") 
else if (hour < 9) 
    alert("Good morning"); 
else if (hour < 15) 
    alert("Good evening"); 
else 
    alert("Goodnight") 
+0

'if(hour < 5 || hour > = 21)alert( 'Goodnight');' – Barmar

関連する問題