这看起来是对的吗?

时间:2011-11-01 19:53:37

标签: javascript time if-statement alert

所以我前一段时间做了这个(我相信这里的帮助,但我不记得 - 相关)因为上课。它应该根据一天中的时间返回一条消息,然后是一条随机消息。随机消息部分工作正常。它的时间消息我很困惑。告诉我你的想法......它看起来是对的吗?

var hr = new Date();

if (hr < 12) {
    alert("Good Morning");
}
if ((hr - 12) < 6) {
    alert("Good Afternoon");
}
if (hr >= 18) {
    alert("Good Evening");
}

msg = new Array
msg[1]="how are you"
msg[2]="whazzup"
msg[3]="how have you been"
msg[4]="how has your day been going"
msg[5]="hey y'all"

random_num = (Math.round((Math.random()*4)+1))

alert(msg[random_num]); 

非常感谢所有帮助和建议。感谢。

4 个答案:

答案 0 :(得分:3)

您应该致电getHours()来返回小时。您的hr实际上是Date对象:

var d = new Date();
var hr = d.getHours();

// Etc...
if (hr < 12) {
    alert("Good Morning");
}
if ((hr - 12) < 6) {
    alert("Good Afternoon");
}
if (hr >= 18) {
    alert("Good Evening");
}

答案 1 :(得分:0)

var hr = (new Date()).getHours();
if (hr < 12)
{
   alert("Good Morning");
}
else if (hr < 18)
{
   alert("Good Afternoon");
}
else if (hr >= 18)
{
   alert("Good Evening");
}

对于数组:

msg = [null]; //start off with index 0 as null
msg.push("how are you");
msg.push("whazzup");
msg.push("how have you been");
msg.push("how has your day been going");
msg.push("hey y'all");

答案 2 :(得分:0)

因为你将同一个表达式与多个结果进行比较,我建议使用switch语句,因为它更清晰,并且提供了更大的灵活性,而不是一堆意大利面条代码,以及其他if和东西。

答案 3 :(得分:0)

// proper way to get the current hour
var hr = new Date().getHours();

// use if elseif
if(hr < 12) {
    alert("Good Morning");
} else if(hr < 18) {
    alert("Good Afternoon");
} else {
    alert("Good Evening");
}

// use var so we don't pollute
var msg = [
    "how are you",
    "whazzup",
    "how have you been",
    "how has your day been going",
    "hey y'all"
];

var random_num = Math.round(Math.random()*4);

alert(msg[random_num]);