当cron作业每天整天每小时执行一次脚本时,如何只在一周的第一天执行脚本中的代码?

时间:2019-01-07 08:04:10

标签: php cron

我需要每个星期一的08:00 am发送电子邮件,并且我有一个PHP脚本。问题是我的Web服务器托管提供商不允许我在任何需要的时间设置cron作业,而只能在每小时,每天,每周(周日午夜)进行选择。

所以我想我可以每小时设置一次cron作业,并通过if语句确定一天是否在正确的时间。

您如何编码if语句,或者你们有更好的解决方案?

我尝试做sleep("1 day and 8 hours"),但后来我读到脚本只运行30秒。

2 个答案:

答案 0 :(得分:0)

我不知道您的PHP脚本如何工作,但您可能要使用以下if语句

if ( date("NH") == "108" ) { ... }

此日期函数返回星期几(1为星期一)和24小时内的时间(以2位数字字符串表示)。 (请参见http://php.net/manual/en/function.date.php

  

N :ISO-8601星期几的数字表示形式,1(星期一)至7(星期日)

     

H :小时的24小时格式,其中前导零是0023

答案 1 :(得分:0)

我认为您可以在脚本中使用以下条件

if (date( 'Y-m-d', strtotime( 'monday this week' ) ) == date('Y-m-d') && date('H') == "08") {
    // PHP SCRIPT 
}