2012-11-06 29 views
6

Tôi không biết JavaScript, nhưng tôi quen với các hướng dẫn sau đây. Tôi biết một chút PHP.JavaScript cho văn bản đầu ra Dựa trên thời gian hiện tại của người dùng

Tôi đang tìm một đoạn JS sẽ xuất ra một chuỗi văn bản cụ thể cho tiêu đề của tôi, dựa trên thời gian hiện tại của người dùng.

Ví dụ:

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

Trả lời

20

Hãy thử sau đoạn mã 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

Điều này phù hợp với tôi. Tất nhiên tôi phải thay đổi console.log thành document.write để đưa nó ra trang. Tôi đã chọn điều này vì nó đơn giản nhất và phù hợp với nhu cầu của tôi, mặc dù một số câu trả lời của người khác bên dưới có thể chính xác hơn. –

1

Hãy thử điều này js mã, này nên làm việc ..

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

Nếu bạn có nhiều 'thời gian' và' văn bản' thì sao? Mã sẽ rất lộn xộn. –

0

tôi đã không kiểm tra nhưng nó sẽ hoạt động:

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]); 
    } 
} 

Demo: http://jsfiddle.net/DerekL/we8Ty/

+0

Đó là 12:21 bởi đồng hồ máy tính của tôi, nhưng nó nói buổi sáng tốt. Có thể nó chỉ cắt ngắn giờ, vì vậy, có lẽ mảng nên nói 0, 11? Tôi không có ý tưởng, chỉ đơn thuần là gợi ý. –

+0

@MikeMeldrem - Tôi chắc chắn rằng nó nên là '[0,11]' ... Không có ý tưởng tại sao tôi đặt '[0,12]' trước đây. –

1

Làm thế nào về:

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' 

Hoặc tăng thêm 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

Đây chỉ là một biến thể nhỏ của giải pháp từ Derek 朕 會 功夫 ở trên.
Tôi cảm thấy mảng này sạch hơn một loạt các câu lệnh if.
Nếu bạn làm việc theo giờ ngược, bạn không cần bắt đầu giờ kết thúc .
Ngoài ra, sau khi bạn thực hiện một trận đấu, tôi đã thêm break; để bắt đầu sớm.

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; 
    } 
} 
Các vấn đề liên quan