用户输入的时间
我想提示用户输入一段时间,例如早上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