5

我试图仅在一天中的特定时间运行某批代码。我只想在上午 8:00 和晚上 10:00 之前运行此代码。

这段代码包含在我网站的页脚中,但它似乎没有工作,它仍然在这些小时内运行代码。(我的服务器和我在同一个时区):

if(date("Hi") < 2200 && date("Hi") > 0800){
    // Run Code
}

如何仅在特定时间之间运行代码?

4

4 回答 4

8
if(date("Hi") < 2200 && date("Hi") > 800){
    // Run Code
}
于 2013-05-30T15:09:25.263 回答
3

尝试使用 strtotime 函数和相关格式:

if ( time() > strtotime( '08:00AM' ) && time() < strtotime( '10:00PM' ) ) {
    // run code
}
于 2013-05-30T15:30:31.627 回答
1

就像 Ryan 在评论中所说的那样 - 您需要将其设置为 cron 作业。

http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/

查看您的 crons:

crontab -l

编辑 crontab

crontab -e

每天早上 8 点运行的示例 cron

00 08 * * * php path/to/script.php

以您尝试的方式设置它的问题是,对您网站的每个请求都会再次引发事件(可能会破坏交易)

于 2013-05-30T15:15:33.817 回答
0

只需使用“G”来获取小时数而不用前导 0

$time = date("Gi");
if(800 <= $time && $time <= 2200){
    // Run Code
}
于 2013-05-30T15:11:45.943 回答