基于时间和日期的php重定向

基于时间和日期的php重定向,php,datetime,redirect,Php,Datetime,Redirect,我正在尝试根据时间和日期将页面重定向到另一个页面。我想让它在周三晚上7点到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 //

我正在尝试根据时间和日期将页面重定向到另一个页面。我想让它在周三晚上7点到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()

w|一周中某一天的数字表示|0(星期日)到6(星期六)

这可能会导致错误。

Sunday是0,而不是7()

w|一周中某一天的数字表示|0(星期日)到6(星期六)


这可能会导致错误。

以下是我将尝试的一些方法:

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

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

在代码顶部使用date\u default\u timezone\u 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)

如果($day==0&&$m>=700&&$day==3&&$m,我会尝试以下几点:

首先,星期天==0,而不是7。星期六==6。他们之间的一切都是这样

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

在代码顶部使用date\u default\u timezone\u 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)

如果($day==0&&$m>=700&&$day==3&&$m最好与javascript结合使用。
问题是PHP在服务器端工作,所以当您收到一个PHP网页时,您的PHP代码已经编译好了

在javascript中,您可以通过使用函数set timeout获得答案

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";

希望这能帮助您进一步寻找答案。

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

在javascript中,您可以通过使用函数set timeout获得答案

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";

希望这能帮助您进一步寻找答案。

哪个错误?您是否尝试使用绝对URI(包括类似http://example.com/open.php的模式)更改位置头值?在“open.php”上,我尝试将其更改为if($day==7&&$m>=700&&$day==31125)头(“Location:open.php);因此,如果时间在星期天11:40到星期三6:45之间,他们不会看到open.php。我收到的错误似乎与我在同一if语句中使用$date有关。哪个错误?您是否尝试在“open.php”上使用绝对URI(包括类似http://example.com/open.php的模式)更改位置头值“我尝试将其更改为if($day==7&&$m>=700&&$day==31125)标题(“Location:open.php”);因此,如果时间介于周日11:40到周三6:45之间,他们就看不到open.php。我收到的错误似乎与我在同一if语句中使用$date有关。