PHP重定向基于时间和日期


php redirect based on time and date

我试图根据时间和日期将页面重定向到另一个页面。我希望能在周三晚上7点到11点之间切换。晚上8点,然后星期日上午10时30分至11时30分。

我能够让它工作,尽管将它从第二页发送回第一页是我遇到的问题。

这是我使用的代码

<?php
$hour = date('G');
$minute = date('i');
$day = date('w');
$m = $hour * 60 + $minute; // Minutes since midnight.
if(
  $day == 7 // Sunday...
  && $m >= 615 // ... after 10:15…
  && $m <= 700 // ... but before 11:40…
) header("Location: open.php");
else if(
$day == 3 // Wednesday...
  && $m >= 1125 // ... after 18:45…
  && $m <= 1235 // ... but before 20:35…
) header("Location: open.php");

我试过切换数字,但我有一个错误,或者它没有重定向。

星期日是0而不是7 (php date)

w |星期几的数字表示| 0(适用于星期日)到6(适用于星期六)

可能导致错误

以下是我想尝试的一些事情:

首先,Sunday == 0, 不是7。星期六== 6。以及他们之间的其他一切。

设置一个时区,以防您在其他地方有一个默认设置,使这两个语句都不为真。

在代码的顶部使用date_default_timezone_set()。我现在是中部时间,所以我要设置

date_default_timezone_set('America/Chicago');

默认值可以在php.ini中的"date "行修改。timezone = America/Chicago"在我更改之前,我的默认设置是在英国的某个地方。

我看到你在评论中添加了。

if($day == 7 && $m >= 700 && $day == 3 1125)

格式化正确,星期日为0。

if($day == 0 && $m >= 700 && $day == 3 && $m <= 1125)

我一开始就给了你一个糟糕的答案,但我明白你想做什么。问题是,每天从700 - 1125 ,它只在周日到周三成立。所以在周一的630点,它是假的。if语句的格式不正确,但您可能希望在条件中使用时间戳。

回复您的原始代码。试试这个:

<?php
date_default_timezone_set('/*ENTER YOUR TIME ZONE HERE*/ /*Find it here: http://www.php.net/manual/en/timezones.php*/');
$hour = date('G');
$minute = date('i');
$day = date('w');
$m = $hour * 60 + $minute; // Minutes since midnight.
if(
  $day == 0 // Sunday...
  && $m >= 615 // ... after 10:15…
  && $m <= 700 // ... but before 11:40…
) header("Location: open.php");
else if(
$day == 3 // Wednesday...
  && $m >= 1125 // ... after 18:45…
  && $m <= 1235 // ... but before 20:35…
) header("Location: open.php");

希望这能解决你的问题!

最好与javascript结合使用。问题是PHP工作在服务器端。所以当你收到一个php网页时,你的php代码已经编译好了。

在javascript中,您可以通过使用函数set Time out

来获得答案
setTimeout(function, milliseconds);

您可以通过计算当前日期与您希望重定向运行的日期之间的差值来计算时间。

在javascript中使用以下函数 来重定向

// similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com");
// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";

希望这对你在寻找答案的过程中有所帮助。