gpt4 book ai didi

javascript - 使用小时和分钟显示问候语(早上/下午/晚上)

转载 作者:行者123 更新时间:2023-11-28 03:29:04 25 4
gpt4 key购买 nike

我正在尝试编写一个 HTML 文档,向访问者显示问候语,例如“早上好/下午/晚上好!”但我不知道如何同时使用小时分钟:


<html>

<head>
<title>ITP1</title>
</head>

<body>
<label id="TIME"></label>
</body>

<script>
var myDate = new Date();
var hrs = myDate.getHours();
var mins = date.getMinutes();
var greet;

if (hrs >= 12 && hrs <= 11.59)
greet = 'Good Morning';
else if (hrs >= 12 && hrs <= 17)
greet = 'Good Afternoon';
else if (hrs >= 17 && hrs <= 24)
greet = 'Good Evening';

document.getElementById('TIME').innerHTML =
'<b>' + greet;
</script>

</html>

我想使用小时和分钟来设置早上/晚上/下午的范围:

  • 晚上:0:00 至 5:29
  • 上午:5:30 至 11:59
  • 下午:12:00 至 17:59
  • 晚上:18:00 至 24:00

最佳答案

首先,将 date.getMinutes() 更改为 myDate.getMinutes()

然后,您可以像这样比较它们:

if (hrs >= 5 && ((hrs == 5 && mins >= 30) || (hrs > 5 && hrs < 12)))
greet = 'Good Morning';
else if (hrs >= 12 && hrs < 18)
greet = 'Good Afternoon';
else if ((hrs >= 18 && hrs < 24) || hrs > 0)
greet = 'Good Evening';
else
greet = 'Error';

请注意,我在末尾添加了一个 else 以应对奇怪的情况。

下面的代码片段展示了这一点的实际效果。不用担心其他代码;它只是为了使测试输出可读。

function doATest(timeIn) {
var myDate = new Date(timeIn ? "0 " + timeIn : null);
var hrs = myDate.getHours();
var mins = myDate.getMinutes(); // changed date to myDate
var greet;

// morning | 5:30-11:59
// afternoon | 12:00-17:59
// evening | 18:00-05:29
if (hrs >= 5 && ((hrs == 5 && mins >= 30) || (hrs > 5 && hrs < 12)))
greet = 'Good Morning';
else if (hrs >= 12 && hrs < 18)
greet = 'Good Afternoon';
else if ((hrs >= 18 && hrs < 24) || hrs > 0)
greet = 'Good Evening';
else
greet = 'Error';

document.getElementById('timeTable').innerHTML +=
'<tr>' +
'<td>' + (timeIn ? timeIn : "Right Now") + '</td>' +
'<td>' + greet + '</td>' +
'</tr>';
}

doATest("1:00");
doATest("1:37");
doATest("5:00");
doATest("5:15");
doATest("5:29");
doATest("5:29:59");
doATest("5:30");
doATest("5:45");
doATest("6:00");
doATest("6:15");
doATest("6:30");
doATest("6:45");
doATest("6:45");
doATest("7:00");
doATest("waffles"); // not valid
doATest("9:45");
doATest("11:00");
doATest("11:30");
doATest("11:45");
doATest("11:59");
doATest("11:59:59");
doATest("12:00");
doATest("12:34");
doATest("12:48");
doATest("13:00");
doATest("13:57");
doATest("15:00");
doATest("17:00");
doATest("17:20");
doATest("17:40");
doATest("17:59");
doATest("17:59:59.999");
doATest("18:00");
doATest("17:76"); // not valid
doATest("18:36");
doATest("18:63"); // not valid
doATest("19:00");
doATest("20:00");
doATest("23:00");
doATest("24:00"); // really 0:00 the next day
doATest("27:00"); // not valid
<html>

<head>
<title>ITP1</title>
</head>

<body>
<table>
<thead>
<tr>
<th>Time</th>
<th>Greeting</th>
</tr>
</thead>
<tbody id="timeTable"></tbody>
</table>
</body>

</html>

关于javascript - 使用小时和分钟显示问候语(早上/下午/晚上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58333086/

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