我想提示用戶輸入一段時間,例如早上6點到上午9點之間,然後是5點到8點之間。我得到適當的提示,但我不知道如何區分它與上午或下午?用戶輸入的時間
var time=prompt("What time is it? ","");
if(time >=6 && time <=9)
我想提示用戶輸入一段時間,例如早上6點到上午9點之間,然後是5點到8點之間。我得到適當的提示,但我不知道如何區分它與上午或下午?用戶輸入的時間
var time=prompt("What time is it? ","");
if(time >=6 && time <=9)
區分AM和PM的一種方法是使用24小時制。
24小時制PM值大於12
。例如18
。
然後,您可以從該值if>12
減去12以獲得非24小時版本。例如:18 - 12
是下午6時
從上午和下午有什麼不同?所以上午11點到下午2點? –
解決方案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
}
如果我輸入'「9:25 PM」'怎麼辦?這當然是一個有效的時間 – charlietfl
我已經修復了錯誤。 – k97513
從上午和下午有什麼不同?所以上午11點到下午2點?以及任何其他小時進入? –
使用'24'小時時鐘 – giannisf
你可以要求用戶首先提供上午時間,然後下午時間。或者你可以要求他們提供「am」和「pm」作爲輸入的一部分。 –
您的文字應該提及'AM/PM' .. – Rayon