2011-01-27 62 views
1

我有一個名爲showbanner()的javascript函數,它被設計爲根據我們的開放時間更改圖像的src。它的工作好了好半天......Javascript time if語句8.30上午

function showbanner() { 
    now = new Date(); 
    t = now.getUTCHours(); 
    m = now.getUTCMinutes(); 
    if (t>9 && t<17) document.getElementById('theImg').src="/Img/Open.png"; 
    else document.getElementById('theImg').src="/Img/Closed.png"; 
} 

然而,我們剛剛改變了我們的開放時間從上午9時- 下午5點上午8:30 - 下午5點,我不能爲我的生活工作如何在上述聲明中表達上午8點30分!

我可以這樣做:

if ((t>8 && t<9 && m>30) && t<17).... 

?????

在此先感謝您的幫助!

乾杯, 馬特

+0

t&8 && t <9`對所有't'都是錯誤的。 – delnan 2011-01-27 18:08:01

+3

不要忘記用var`** !!!聲明所有局部變量** – Pointy 2011-01-27 18:08:17

+0

哎呀!謝謝,小白失敗! – Megamatman 2011-01-27 18:18:06

回答

2

您可以製作一個以軍事時間格式存儲時間的變量。

function showbanner() { 
    var now = new Date(); 
    var t = now.getUTCHours(); 
    var m = now.getUTCMinutes(); 
    var mil = 100*t+m; // Military time 
    if (mil >= 830 && mil <= 1700) { // Between 8:30 AM and 5:00 PM 
     document.getElementById('theImg').src="/Img/Open.png"; 
    } else { 
     document.getElementById('theImg').src="/Img/Closed.png"; 
    } 
} 

這可以使未來的變化更容易。

2
function showbanner() { 
    var now = new Date(); 
    var t = now.getUTCHours(); 
    var m = now.getUTCMinutes(); 
    if ((t > 8 || t === 8 && m <= 30) && t < 17) document.getElementById('theImg').src="/Img/Open.png"; 
    else document.getElementById('theImg').src="/Img/Closed.png"; 
} 
0

嘗試此(轉換8:30到其爲510秒,並檢查是否(噸* 60)+ m是大於):

function showbanner() { 
    now = new Date(); 
    t = now.getUTCHours(); 
    m = now.getUTCMinutes(); 
    if (((t*60) + m) >510 && t<17) 
     document.getElementById('theImg').src="/Img/Open.png"; 
    else 
     document.getElementById('theImg').src="/Img/Closed.png"; 
}