javascript - 获取时间并用它定义不同的变量

标签 javascript jquery

我创建了一个可以获取时间的函数。然后设置变量来定义早上、中午和晚上。最后用greeting变量调用变量。

我不确定我对 morningTime 变量做错了什么。 noonTime 变量确实有效。

有人看出我做错了什么吗?

jsfiddle

 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/

相关文章:

javascript - JQuery/Ajax 和 when/done/promise 混淆

javascript - AS3 使用 Loader 从服务器加载图像

javascript - 发现对象的次数

javascript - 使用js或jquery替换w3-include-html attr

javascript - 使用 BootStrap 和 Angular - 动态选择输入

javascript - 当 body 高度 100% 时,将页脚粘到底部

javascript - 如何使用 JQuery 多次更改禁用标签

javascript - 先加载 JSON

javascript - Google Chrome 错误无法加载 google map 、ajax 调用上的 jQuery 函数

javascript - 表单内的输入问题