Как запустить функцию в определенные c дней каждой недели? - PullRequest
0 голосов
/ 04 февраля 2020

В основном я пытаюсь запустить функцию в очень определенные c дни каждой недели. Мне было бы трудно вставить слова, чтобы я вычеркнул изображение, вычеркивающее дни, когда я хочу бежать. Хотя я буду стараться изо всех сил, чего я хочу достичь и что я сделал до сих пор. Пока что это был мой подход, во-первых, я получаю текущую дату, номер недели месяца и рабочие дни, начиная с (1 для понедельника, 7 для воскресенья). Таким образом, я могу сделать это правильно только в январе, но не в последующие месяцы, поскольку он сбрасывается для каждого месяца. например, 31 января я запускаю функцию, затем в следующем месяце она не должна запускаться в понедельник на первой неделе февраля, вместо этого она должна запускаться во вторник и четверг, так как она уже выполняла функцию в пятницу 31 января, следуя схеме предыдущего месяца Могу ли я узнать, нахожусь ли я на правильном пути? Мне было бы полезно изучить эту концепцию, если у кого-то есть предложения или советы. (Отправить сообщение - это функция, которую я хочу запустить).

$date = date("Y-m-d");
$week = ceil( date( 'j', strtotime( $date ) ) / 5 );
$working_days = (date('N', strtotime($date)));
if($week  == 1 || $week == 3 || $week == 5){
            if($working_days == 1 || $working_days == 3 || $working_days == 5){
                         sendEmail($to, $title, $content, $content1);
                         //echo("week " .$week." -> "."1 => ".$working_days."<br>");
                         //echo("send");
            }
            else{
                echo("week " .$week." -> "."1 => ".$working_days."<br>");
                echo("do not send");
            }
        }
        else{
            if($working_days == 2 || $working_days == 4){
              sendEmail($to, $title, $content, $content1);
              //echo("week ".$week."-> "."2 => ".$working_days."<br>");
              //echo("send");
            }
            else{
                echo("week " .$week." -> "."1 => ".$working_days."<br>");
                echo("do not send");
            }
        } 

enter image description here

1 Ответ

1 голос
/ 04 февраля 2020

Это должно сделать это.
Я смотрю на номер недели, используя дату W, и вижу, является ли она четной или неравномерной.
Это то, что разделяет недели.

$date = "2020-01-06";

echo $week = date( 'W', strtotime( $date ) );
$working_days = date('N', strtotime($date));


if($week % 2 == 1){
    if($working_days == 1 || $working_days == 3 || $working_days == 5){
         sendEmail($to, $title, $content, $content1);
         //echo("week " .$week." -> "."1 => ".$working_days."<br>");
         //echo("send");
    } else{
          echo("week " .$week." -> "."1 => ".$working_days."<br>");
          echo("do not send");
    }
}else{
    if($working_days == 2 || $working_days == 4){
          sendEmail($to, $title, $content, $content1);
          //echo("week ".$week."-> "."2 => ".$working_days."<br>");
          //echo("send");
    }else{
           echo("week " .$week." -> "."1 => ".$working_days."<br>");
           echo("do not send");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...