2012-11-06 44 views
6

我不瞭解JavaScript,但我熟悉以下說明。我知道一點PHP。根據用戶當前時間輸出文本的JavaScript

我正在尋找一段JS,它會根據用戶的當前時間爲我的標題輸出特定的文本字符串。

例如:

12:00AM - 12:00PM - Good Morning! 
12:00PM - 6:00PM - Good Afternoon! 
6:00PM - 12:00AM - Good Evening! 

回答

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

如果你有很多'時間'和'文本'會怎麼樣?代碼會非常混亂。 –

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; 
    } 
} 
相關問題