Javascript - .getHours()不起作用

时间:2016-05-06 21:56:05

标签: javascript

我只是搞乱,我还是相对较新的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,确实会出现这种情况。不幸的是我不能用它,因为它落后一个小时。那么有谁知道为什么我的警报箱不会出现?

2 个答案:

答案 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