我创建了一个可以获取时间的函数。然后设置变量来定义早上、中午和晚上。最后用greeting变量调用变量。
我不确定我对 morningTime
变量做错了什么。 noonTime
变量确实有效。
有人看出我做错了什么吗?
function timeNow() {
var d = new Date(),
h = (d.getHours() < 10 ? '0' + d.getHours() : '') + d.getHours(),
m = (d.getMinutes() < 10 ? '0' + d.getMinutes() : '') + d.getMinutes();
// To check for a time range (between 4:: and 11:30 here):
var morningTime = (h >= 5 && h <= 12) ? true : false;
var noonTime = (h >= 12 && h <= 17) ? true : false;
var nightTime = (h >= 17 && h <= 5) ? true : false;
var greeting = "";
if (morningTime) {
greeting = "Good Morning";
} else if (noonTime) {
greeting = "Good Afternoon";
} else if (nightTime) {
greeting = "Good Evening";
}
return greeting;
}
document.getElementById('dashboard-hello').innerHTML = timeNow() + ', name!';
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="dashboard-hello" class="section-title"></div>
最佳答案
h = (d.getHours() < 10 ? '0' + d.getHours() : '') + d.getHours(),
m = (d.getMinutes() < 10 ? '0' + d.getMinutes() : '') + d.getMinutes();
从这两行中我看到,您将小时和分钟两次连接到一个字符串中。
如果现在是 09:09am,上面的代码会将 099
表示为 h
,将 099
表示为 m
。
如果你想在左填充处保留0,你可以这样做:
h = ('0' + d.getHours()).slice(-2),
m = ('0' + d.getMinutes()).slice(-2),
现在回到你的问题,你实际上根本不需要进行 0 填充,只需尝试以下操作:
function timeNow() {
var d = new Date(),
h = d.getHours(),
// To check for a time range (between 4:: and 11:30 here):
var morningTime = h >= 5 && h <= 12;
var noonTime = h > 12 && h <= 17;
var nightTime = h > 17 && h < 5;
var greeting = "";
if (morningTime) {
greeting = "Good Morning";
} else if (noonTime) {
greeting = "Good Afternoon";
} else if (nightTime) {
greeting = "Good Evening";
}
return greeting;
}
document.getElementById('dashboard-hello').innerHTML = timeNow() + ', name!';
关于javascript - 获取时间并用它定义不同的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41960226/