Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据用户更改body类';s当地时间_Javascript_Html - Fatal编程技术网

Javascript 根据用户更改body类';s当地时间

Javascript 根据用户更改body类';s当地时间,javascript,html,Javascript,Html,我试图根据用户的本地时间,添加一个body类,如果是早上6点到下午5点,则为“day”,如果是“else”,则为“night” 我尝试了以下方法,但没有成功。有什么想法吗 在头部: <script> function setTimesStyles() { var currentTime = new Date().getHours(); if(currentTime > 5 && currentTime < 17) { doc

我试图根据用户的本地时间,添加一个body类,如果是早上6点到下午5点,则为“day”,如果是“else”,则为“night”

我尝试了以下方法,但没有成功。有什么想法吗

在头部:

<script>
function setTimesStyles() {
    var currentTime = new Date().getHours();
    if(currentTime > 5 && currentTime < 17) {
        document.body.className = 'day';
    }
    else {
        document.body.className = 'night';
    }
}
</script>

函数setTimesStyles(){
var currentTime=new Date().getHours();
如果(currentTime>5&¤tTime<17){
document.body.className='day';
}
否则{
document.body.className='night';
}
}
在正文中:

<body onload="setTimeStyles();">

还有,有没有更优雅的方式来实现我所需要的


本网站位于Wordpress btw上。

您的功能中存在键入错误

function setTimesStyles() {  
    ...
}
应该是

function setTimeStyles() {  
    ...
}
进行上述更改或更新body调用,使其与函数的拼写完全一致

除此之外,我将使用一些更不先进的方法来设置body标记的类名。而不是直接调用函数。我建议使用众多javascript框架中的一个来检测DOM何时可以被遍历。一旦知道DOM已经构建好,就可以执行必要的代码。jquery函数就是一个例子,您可以通过以下方式将其绑定:

$(document).ready(function() {
    setTimeStyles();
    ... // or any other code you want to execute when the DOM is ready.
});

这些框架抽象了很多您通常需要了解的关于在不同浏览器中使用某些东西的细节。以更不引人注目的方式做事还有一个额外的好处,那就是可以更好地分离javascript和HTML。

这在Chrome中对我很有用。哪些浏览器出现问题?到底是什么问题?您是否尝试过使用JavaScript调试器?如果没有在正确的时间添加正确的类,这很可能是一个时区问题。我似乎无法在body标记中显示类名。我将尝试调试,尽管我对它不太熟悉。请检查。它似乎正在工作,只是没有做您认为应该做的事情,因为CSS、时钟设置或时区。您希望在哪里看到这个新类?您只能通过诸如Firebug之类的调试器来验证它是否存在。如果这是您所期望的,它将不会显示在源代码中的标记中。