gpt4 book ai didi

javascript - 如何让JS将12小时输入格式解析为24或

转载 作者:行者123 更新时间:2023-11-29 22:08:48 25 4
gpt4 key购买 nike

希望得到一些帮助。我是 JS 的新手。我必须编写一个脚本,询问用户当前时间。这很容易。如果时间在早上6点到9点之间,它会给出一定的提示。如果时间在上午 11 点到下午 1 点之间,则另一个提示。如果在下午 5 点到晚上 8 点之间,提示。我的问题是如何让 JS 理解当用户输入让我们说数字 5 时,它是下午 5 点(晚餐时间)而不是早上 5 点(去吃零食)。请帮我。什么可以解决我的问题?在美国没有人真正使用 24 小时格式,因此我的脚本中的数字 13(下午 1 点)、17(下午 5 点)或 20(晚上 8 点)不起作用。我只能输入 12 小时制的时间格式。

var hour=prompt("What is the current hour? ","");

if( hour >= 6 && hour <= 9 ){
alert("Breakfast is served.");
}
else if( hour >=11 && hour <= 13 ){
alert("Time for lunch.");
}
else if( hour >=17 && hour <= 20 ){
alert("It's dinner time.");
}
else {
alert("Sorry, you'll have to wait, or go get snack.");
}

最佳答案

我会使用 JavaScript's String.match()将字符串与 RegExp 进行比较描述小时格式,例如 /^(\d{1,2})\s*(am|pm)?$/i。此 RegExp 表示:

  • ^ 匹配字符串的开头
  • (\d{1,2}) 匹配并捕获 1 或 2 个数字(即 0-9)
  • \s* 匹配0个或多个空白字符
  • (am|pm)? 可选地匹配和捕获 'am''pm'
  • $匹配字符串结尾
  • 末尾的
  • i 表示忽略匹配项的大小写(即匹配 'am''AM')<

此外,我会围绕提示设置一个循环,以防用户没有输入正确的格式。

这是一个完整的示例。

var hour;
var done = false;

while (!done) {
var answer = prompt("What is the current hour?","");
var result = answer.match(/^(\d+)\s*(am|pm)?$/i);
if (result) {
hour = +result[1];
if (result[2] && result[2].match(/pm/)) {
// If pm was specified, add 12
hour += 12;
}
if (hour < 24) {
done = true;
}
}
}

... Your code as before

关于javascript - 如何让JS将12小时输入格式解析为24或,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19310425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com