一天中的时间问候代码无法以上午/下午的格式运行

时间:2019-05-26 11:57:43

标签: javascript

是的,所以问题很简单,我认为解决方案也应该很简单,但是我是一个完整的新手,所以不知道它是如何工作的。如果时间来源为am pm格式,则下面的代码将不起作用,是否知道如何在两种情况下都可以使用它?

var today = new Date ();
var hourNow = today.getHours();
var greeting;

if (hourNow > 18) {
  greeting = 'Good Evening!';
} else if (hourNow > 12) {
  greeting = 'Good Afternoon!';
} else if (hourNow > 0) {
  greeting = 'Good morning!';
} else {
  greeting = 'Welcome!';
}

document.write('<h1>' + greeting + '</h1>');

2 个答案:

答案 0 :(得分:0)

正如Turbo所言,Date对象不会以AM / PM格式存储数据,因此您的代码必须在任何地方都能工作,并且我在浏览器中对其进行了测试。

var today = new Date ();
console.log(today);       // Sun May 26 2019 18:04:28 GMT+0530 (India Standard Time)
var hourNow = today.getHours();
console.log(hourNow);     // 18

答案 1 :(得分:0)

我发现了问题。以我的理解,对于JS代码12:59仍然是12,因此是“早上好!”。所以我必须将小时设置为现在的一小时。像这样:

   var today = new Date();
    var hourNow = today.getHours();
    var greeting;

    if (hourNow > 16) {
      greeting = 'Good Evening!';
    } else if (hourNow > 11) {
      greeting = 'Good Afternoon!';
    } else if (hourNow > 0) {
      greeting = 'Good morning!';
    } else {
      greeting = 'Welcome!';
    }

    console.log(greeting);

这样,我将获得下午好!晚上12点以后和晚上好!下午5点之后