我只是搞乱,我还是相对较新的JavaScript。我写了这段代码:
<script>
var today = new Date();
var str ='';
str = today.getHours();
if (str >=5 && str <=10)
{
alert("Wow you're up early!, good morning");
}
if (str >= 11 && str <= 1)
{
alert("Good Morning");
}
if (str >=2 && str <= 21)
{
alert("Good evening");
}
if(str >= 22 && str <= 4)
{
alert("Good night");
}
基本上,警报框没有出现。虽然如果我将getHours
函数更改为getUTCHours
,确实会出现这种情况。不幸的是我不能用它,因为它落后一个小时。那么有谁知道为什么我的警报箱不会出现?
答案 0 :(得分:2)
您不需要对范围过度具体。另外,不要使用像str
这样的var名称,特别是当var中包含的数据是整数时...这只是非常混乱
var now = new Date();
var hour = now.getHours();
if (hour < 5)
alert('Goodnight');
else if (hour < 10)
alert("Wow you're up early! Good morning.");
else if (hour < 14)
alert("Good morning");
else if (hour < 21)
alert("Good evening");
else
alert("Goodnight")
你会说&#34;这很糟糕,但是#34;对吗?因为我们必须两次指定"Goodnight"
方案。
使用偏移量
可轻松修复var now = new Date();
var hour = now.getHours();
hour = hour - 5; // offset
if (hour < 5)
alert("Wow you're up early! Good morning.")
else if (hour < 9)
alert("Good morning");
else if (hour < 15)
alert("Good evening");
else
alert("Goodnight")
答案 1 :(得分:0)
因为条件错误:例如,现在,00:00,你会想要消息“晚安”,但0不能是&gt; = 22和&lt; = 4