2016-02-28 71 views
0

我想提示用戶輸入一段時間,例如早上6點到上午9點之間,然後是5點到8點之間。我得到適當的提示,但我不知道如何區分它與上午或下午?用戶輸入的時間

var time=prompt("What time is it? ",""); 
if(time >=6 && time <=9) 
+0

使用'24'小時時鐘 – giannisf

+0

你可以要求用戶首先提供上午時間,然後下午時間。或者你可以要求他們提供「am」和「pm」作爲輸入的一部分。 –

+0

您的文字應該提及'AM/PM' .. – Rayon

回答

0

區分AM和PM的一種方法是使用24小時制。

24小時制PM值大於12。例如18

然後,您可以從該值if>12減去12以獲得非24小時版本。例如:18 - 12是下午6時

+0

從上午和下午有什麼不同?所以上午11點到下午2點? –

0

解決方案1:

你可以要求24小時時間:

var prompt = prompt("What time is it?", "24 hour time only"); 
 
prompt = prompt.replace(":", "");//replaces : in 9:25 
 
prompt = parseInt(prompt);//get the integer part of prompt 
 
if (prompt > 6 && prompt < 9 || (prompt > 600 && prompt < 900)) {//between 6-9 am 
 
    //do something 
 
} 
 
else if (prompt > 17 && prompt < 20 || (prompt > 1700 && prompt < 2000)) {//between 5-8 pm 
 
    //do something 
 
} 
 
else {//neither 
 
    //do something 
 
}

解決方案2:如果它結束 檢查與「am」或「pm」:

var prompt = prompt("What time is it?", "8am"); 
 
prompt = prompt.replace(":","");//replaces : in 9:25am 
 
if (prompt.substr(-2,2) == "am") { 
 
    var time = "am"; 
 
} 
 
else if (prompt.substr(-2,2) == "pm") { 
 
    var time = "pm" 
 
} 
 
else { 
 
    alert('not a time'); 
 
} 
 
prompt = parseInt(prompt); 
 
if (prompt > 6 && prompt < 9 && time == "am" || (prompt > 600 && prompt < 900 && time == "am")) { 
 
    alert("6-9 am"); 
 
} 
 
else if (prompt > 5 && prompt < 8 && time == "pm" || (prompt > 500 && prompt < 800 && time == "pm")) { 
 
    alert("5-8 pm"); 
 
} 
 
else { 
 
    //do something 
 
}

+0

如果我輸入'「9:25 PM」'怎麼辦?這當然是一個有效的時間 – charlietfl

+0

我已經修復了錯誤。 – k97513

+0

從上午和下午有什麼不同?所以上午11點到下午2點?以及任何其他小時進入? –