2013-08-03 50 views
5

Tôi muốn có tệp javascript để kiểm tra xem thời gian hiện tại có từ 7 giờ tối đến 7 giờ sáng hay không. Nếu vậy, nó sẽ thay đổi màu nền trên trang web của tôi thành X. Nếu thời gian hiện tại không phải là từ 7 giờ tối đến 7 giờ sáng, thì màu nền phải là Y. Vì tôi mới sử dụng Javascript Tôi không biết mọi thứ và đó là lý do tôi cần sự giúp đỡ của bạn!Javascript nếu thời gian là từ 7 giờ tối đến 7 giờ sáng, hãy làm điều này?

+0

'ngày mới(). GetHours()' và so sánh trong 24h. – elclanrs

+0

có thể trùng lặp [Từ 11 giờ đến 7 giờ sáng trong Javascript] (http://stackoverflow.com/questions/14546193/between-11pm-and-7am-in-javascript) –

Trả lời

12
var today = new Date().getHours(); 
if (today >= 7 && today <= 19) { 
    document.body.style.background = "Red"; 
} else { 
    document.body.style.background = "Blue"; 
} 

Xem fiddle.

+0

Chức năng hoạt động như thế nào? Nếu tôi phải gọi nhiều lần, một hàm sẽ phù hợp hơn. – Si8

+0

Tôi không hiểu tại sao nó lại có tất cả các ngón tay cái. Nó sẽ không hoạt động nếu giờ bắt đầu là 7 giờ tối và giờ kết thúc là 7 giờ sáng (ví dụ ban đêm) – Tengiz

1

Đây là JSBin

var currentTime = new Date().getHours(); 
if (currentTime >= 19 && currentTime <= 7) { 
    document.body.style.background = "/*your X color*/"; 
} else { 
    document.body.style.background = "/*your Y color*/"; 
} 
+0

lý do tại sao downvote (s), kiểm tra đăng JSBin –

-1

này có thể giúp bạn:

function checkTime() { 
     var d = new Date(); // current time 
     var hours = d.getHours(); 
     var mins = d.getMinutes(); 
     if(hours>=19 || hours <=7) 
      { 
       document.body.style.background="";//set background color x 
      } 
      else 
      { 
       document.body.style.background="";//set background color y 
      } 

    } 
+0

Nevermind, Tôi đã đọc sai câu hỏi. –

0
var d = new Date(); 
var n = d.getHours(); //get the current local time's hour in military time (1..23) 

//If the time is greater than or equal to 7pm or less than or equal to 7am 
if (n >= 19 || n <= 7) { 
    //set background color to X 
} 
else { 
    //set background color to Y 
} 
+0

Trên thực tế nó hoạt động theo cách – Spencer

+0

Sự hiểu lầm của tôi - Tôi đọc câu hỏi giữa AM và PM, không phải PM và AM. Xin lỗi vì điều đó. –

1

tôi đề nghị sử dụng một lớp trên cơ thể để quản lý các phong cách, nhưng xử lý các lớp học trong JavaScript.

Thực chất bạn sẽ sử dụng lớp học Date để nhận giờ hiện tại trong thời gian quân sự (24 giờ). 7 giờ tối được thể hiện là 19 trong thời gian quân sự.

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

// between 7 PM and 7 AM respectively 
if(hour >= 19 || hour <= 7) { 
    document.body.className += 'between7'; 
} else { 
    document.body.className += 'notBetween7'; 
} 

Sau đó, trong CSS, bạn có thể xử lý các lớp đó.

body.between7 { 
    background-color: green; 
} 

body.notBetween7 { 
    background-color: red; 
} 
+0

Có thể vì câu hỏi yêu cầu thời gian từ "7 giờ tối đến 7 giờ sáng", không phải theo cách khác. Ai biết. Tôi thấy rằng bạn nhận xét ở khắp mọi nơi rằng họ so sánh các giá trị sai nhưng trên thực tế bạn là người đã phạm sai lầm. –

+0

Điểm tốt @Felix, haha. Tôi đã bỏ lỡ điều đó. –