根据当地时间更改等级:当地日出/日落计算



我是JavaScript的新手,编写这些代码可以根据访问者的本地时间更改页面的背景。

我还不能真正测试它,所以第一个问题是,这真的有效吗?:D

主要问题是:有没有办法根据游客的实际当地时间设置日出和日落时间(现在设置为6点和20点(?

非常感谢您的帮助!!

<script type="text/javascript">
setInterval(change_background, 1000 * 60 * 60);
function change_background() {
var d = new Date();
var n = d.getHours();
console.log(n);


if (n == 6 || n == 20) {

document.getElementById("intro").className = "inter";
} else {


if (n == 23 || n < 7) {

document.getElementById("intro").className = "night";
} else {
document.getElementById("intro").className = "day";
}
console.log("test");

}

console.log("test");
}


change_background();
</script>

我建议使用更短且重新排序的代码——主要区别在于,每次调用函数时,我们都会设置类,您的代码在第7小时之后不会执行任何操作,而是在第6、20和23小时执行。

function change_background() {
var nowHour = new Date().getHours();
document.querySelector("#intro").className = ( nowHour >= 6 && nowHour <= 20 ) ? "inter" : ( (nowHour >= 23 || nowHour <= 5) ? "night" : "day" );
}
setInterval(change_background, 1000 * 60 * 60); change_background(); // trigger interval and first check

要使用本地时区,您可以使用getTimezoneOffset,但如果您想尽可能接近准确,时区可能会让事情变得噩梦般。只要想想极地的一个科学站,日出和日落在这种极端的场景中就失去了意义。但有了偏移量,你可以用它将其与已知的好日出时间联系起来。。但你需要每天(或至少几天(编辑你的文件,以匹配全年的进度。

最新更新