首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于时间和日期的php重定向

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

Stack Overflow用户
提问于 2011-09-07 04:03:45
回答 3查看 2.1K关注 0票数 1

我正在尝试有一个页面重定向到另一个页面的时间和日期为基础。我想让它在周三晚上7点到8点之间切换,然后在周日上午10点30分到11点30分。

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

下面是我使用的代码

代码语言:javascript
复制
<?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");

我试着调换号码,但我要么出错,要么没有重定向。

EN

回答 3

Stack Overflow用户

发布于 2011-09-07 04:15:27

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

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

这可能会导致错误。

票数 1
EN

Stack Overflow用户

发布于 2013-05-15 01:33:12

下面是我会尝试的几件事:

首先,周日== 0,而不是7。星期六== 6.以及他们之间的所有其他事情。

设置一个时区,以防您在其他地方设置了默认时区,使这两种说法都不成立。

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

代码语言:javascript
复制
date_default_timezone_set('America/Chicago');

可以在php.ini中的"date.timezone =美国/芝加哥“行更改默认值。在更改之前,我的默认值是在英国的某个地方。

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

代码语言:javascript
复制
if($day == 7 && $m >= 700 && $day == 3 1125)

格式正确,sunday为0。

代码语言:javascript
复制
if($day == 0 && $m >= 700 && $day == 3 && $m <= 1125)

实际上,一开始我给了你一个糟糕的答案,但我明白你想做什么了。问题是,只有从周日到周三,每天的700 - 1125 才是真的。因此,在周一的630,这将是错误的。if语句的格式不符合您想要做的事情,但是您可能希望在您的条件中使用时间戳。

来回答你的原始代码。试试这个:

代码语言:javascript
复制
<?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");

希望这能解决你的问题!

票数 0
EN

Stack Overflow用户

发布于 2017-10-18 22:49:14

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

在javascript中,您可以通过使用set Time out函数得到答案。

代码语言:javascript
复制
setTimeout(function, milliseconds);

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

要在javascript中重定向,请使用以下函数

代码语言: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";

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7325488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档