首页 > 解决方案 > 如何在特定时间刷新页面

问题描述

我在我的 wp 页面中尝试了此代码,但它不起作用

<?php
$page = $_SERVER['PHP_SELF'];
$sec = "10";
date("d-m-Y H:i:s");
$time= date("H:i:s");
if($time == "03:40:00")
{
    echo "The new page loading in 10 seconds!";
	header("Refresh: $sec; url=$page");
}
?>

标签: phprefresh

解决方案


你不能在 PHP 中做到这一点,你可以为这样的任务做的是计算时间差并以秒为单位,并设置页面的标题以秒为单位在时间差后刷新,如下所示

<?php
$page = $_SERVER['PHP_SELF'];
$datetime1 = new DateTime('2020-05-23 18:20:10');
$datetime2 = new DateTime('2020-05-23 18:20:30');
$interval = $datetime2->diff($datetime2);
$diff = $datetime2->getTimestamp() - $datetime1->getTimestamp(); // diff in seconds
// you can just have `redirect` queryString params passed like this.
if(empty($_GET['redirect'])) {
  header("Refresh: $diff; url=$page" . "?redirect=1");
}

这里要指出的是,使用标记在您的页面中进行刷新而不是使用header(),它对我来说作为实现感觉更干净,特别是如果您已经有一个模板引擎:

<meta http-equiv="refresh" content="20">

推荐阅读