2012-11-06 5 views

答えて

20

Javascriptのコードの一部、以下試してください。私がテストしていない

var today = new Date() 
var curHr = today.getHours() 

if (curHr < 12) { 
    console.log('good morning') 
} else if (curHr < 18) { 
    console.log('good afternoon') 
} else { 
    console.log('good evening') 
} 
+0

これは私に役立ちます。もちろん、console.logをdocument.writeに変更して、ページに出力する必要がありました。私はこれが最も簡単で、私のニーズに応えるため、これを選びましたが、以下の回答がもっと正しいかもしれません。 –

1

が。これは動作するはずです、これはコードをJS

var dt = new Date().getHours(); 
if (dt >= 0 && dt <= 11){ 
console.log('GM') 
}else if (dt >= 12 && dt <= 17){ 
console.log('Good Afternoon!') 
}else { 
console.log('GE') 
} 
+0

'time'と' text'がたくさんあるとどうなりますか?コードはとても面倒です。 –

0

をお試しください動作するはずです:

function getText() 
{ 
    var hour = new Date().getHours(); 
    var minute = new Date().getMinutes(); 
    if (hour >= 0 && hour < 12) 
    return 'Good Morning!'; 
    else if (hour == 12 && minute == 0) 
    return 'Good Morning!'; 
    else if (hour == 12 && minute > 0) 
    return 'Good Afternoon!'; 
    else if (hour == 6 && minute == 0) 
    return 'Good Afternoon!'; 
    else if (hour == 6 && minute > 0) 
    return 'Good Evening!'; 
    else if (hour > 12 && hour < 6) 
    return 'Good Afternoon!'; 
    else if (hour > 6 && hour < 12) 
    return 'Good Evening'; 
} 
5
var data = [ 
    [0, 4, "Good night"], 
    [5, 11, "Good morning"],   //Store messages in an array 
    [12, 17, "Good afternoon"], 
    [18, 24, "Good night"] 
], 
    hr = new Date().getHours(); 

for(var i = 0; i < data.length; i++){ 
    if(hr >= data[i][0] && hr <= data[i][1]){ 
     console.log(data[i][2]); 
    } 
} 

デモ:http://jsfiddle.net/DerekL/we8Ty/

+0

私のコンピュータ時計では12:21ですが、それはおはようございます。可能なのは、時間を切り捨てるだけなので、おそらく配列は0,11と言うべきでしょうか?私は考えていません。単に示唆しているだけです。 –

+0

@MikeMeldrem - 私は '[0,11]'でなければならないと確信しています...なぜ[[0,12] 'を前に置くのか考えません。 –

1

方法について:

var time = new Date().getHours(); 
    ,greeting = 'Good '+ (time < 12 ? 'Morning' : 
         time < 18 ? 'Afternoon' : 'Evening'); 
//=> new Date('2012/11/06 13:10') => 'Good Afternoon' 
//=> new Date('2012/11/06 10:33') => 'Good Morning' 
//=> new Date('2012/11/06 19:23') => 'Good Evening' 

または拡張Date

Date.prototype.greeting = function(){ 
    var time = this.getHours(); 
    return 'Good '+ (time<12 ? 'Morning' : time<18 ? 'Afternoon' : 'Evening'); 
}; 
new Date('2012/11/06 19:23').greeting() //=> 'Good Evening' 

see jsfiddle

0
<script type="text/javascript"> 

    var myDate = new Date(); 
    var name = window.prompt("Please enter your name: "); 

    if (myDate.getHours() < 12) { 
     document.write("Good Morning " +name); 
    } 
    else if(myDate.getHours() >=12 && myDate.getHours() <=17){ 
     document.write("Good Afternoon " +name); 
    } 
    else if (myDate.getHours() > 17 && myDate.getHours() <=24) { 
     document.write("Good Evening " +name); 
    } 
    else 
    { 
     document.write("Good Night"); 
    } 
</script> 
0

これは上記のDerek殿功夫の解決策のほんの少しの変形です。
アレイがif文よりもきれいであると感じました。
時間を逆にして作業する場合、開始時間は終了時間は必要ありません。
また、一度試合を行うと、私はbreak;を追加して早く蹴り出しました。

var data = [ 
    [22, 'Working late'], 
    [18, 'Good evening'], 
    [12, 'Good afternoon'], 
    [5, 'Good morning'], 
    [0, 'Whoa, early bird'] 
], 
hr = new Date().getHours(); 
for (var i = 0; i < data.length; i++) { 
    if (hr >= data[i][0]) { 
     console.log(data[i][1]) 
     break; 
    } 
} 
関連する問題