JavaScriptはわかりませんが、私は以下の指示に精通しています。私は少しのPHPを知っています。ユーザーの現在の時間に基づいてテキストを出力するJavaScript
私は、ユーザの現在の時間に基づいて、私のヘッダに特定の文字列を出力するJSを探しています。例えば
:
12:00AM - 12:00PM - Good Morning!
12:00PM - 6:00PM - Good Afternoon!
6:00PM - 12:00AM - Good Evening!
JavaScriptはわかりませんが、私は以下の指示に精通しています。私は少しのPHPを知っています。ユーザーの現在の時間に基づいてテキストを出力するJavaScript
私は、ユーザの現在の時間に基づいて、私のヘッダに特定の文字列を出力するJSを探しています。例えば
:
12:00AM - 12:00PM - Good Morning!
12:00PM - 6:00PM - Good Afternoon!
6:00PM - 12:00AM - Good Evening!
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')
}
が。これは動作するはずです、これはコードを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')
}
'time'と' text'がたくさんあるとどうなりますか?コードはとても面倒です。 –
をお試しください動作するはずです:
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';
}
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]);
}
}
私のコンピュータ時計では12:21ですが、それはおはようございます。可能なのは、時間を切り捨てるだけなので、おそらく配列は0,11と言うべきでしょうか?私は考えていません。単に示唆しているだけです。 –
@MikeMeldrem - 私は '[0,11]'でなければならないと確信しています...なぜ[[0,12] 'を前に置くのか考えません。 –
方法について:
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'
<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>
これは上記の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;
}
}
これは私に役立ちます。もちろん、console.logをdocument.writeに変更して、ページに出力する必要がありました。私はこれが最も簡単で、私のニーズに応えるため、これを選びましたが、以下の回答がもっと正しいかもしれません。 –