1 回答
TA贡献1993条经验 获得超5个赞
您的 PHP 代码在页面加载时执行一次。只有当 PHP 完成后,生成的 HTML 和 Javascript 才会发送到浏览器,以便您的访问者可以看到一些东西。
如果您想在用户访问您的网站时定期检查某些内容,那是 Javascript 而不是 PHP 的工作。由于您需要检查服务器时间而不是用户的本地时间,因此最好的办法是使用 Ajax 每隔一段时间调用一个 PHP 脚本。
根据您想要做什么来判断,您真正需要知道的只是服务器认为的时间。我个人更喜欢这类 PHP 脚本来输出 JSON,主要是因为 Javascript 可以很容易地处理它,所以像这样一个简单的 PHP 脚本就足够了:
<?php
header('Content-Type: application/json');
date_default_timezone_set('Europe/Rome');
$info = getdate();
$hour = $info['hours'];
echo json_encode(['hour' => $hour]);
这将根据服务器输出一个包含当前时间的 JSON 对象,例如:{"hour":21}
您可以使用 jQuery 相对简单地使用它。将其包装在 asetInterval中以使其定期运行。你每 10 秒提到一次,所以这就是我将用于此示例的内容:
<script>
setInterval(function() {
// change "/server_time.php" to point to wherever you put that PHP script above
jQuery.getJSON("/server_time.php", function(data) {
if (data.hour >= 8 && data.hour <= 22) {
document.getElementById("myid").innerHTML = "OPEN";
document.getElementById("myid").setAttribute("class", "open");
} else {
document.getElementById("myid").innerHTML = "CLOSED";
document.getElementById("myid").setAttribute("class", "closed");
}
});
}, 10000);
</script>
快速免责声明:我没有测试这段代码,所以 YMMV。看起来它应该可以工作,但我并不打算为您完全解决您的问题,而是指出解决方法。
- 1 回答
- 0 关注
- 74 浏览
添加回答
举报