Я думаю, что вы хотите, чтобы отображать ваше сообщение каждый третий день, для чего вы можете использовать оператор по модулю %
.
<?php
for ($i = 1; $i <= 10; $i++) {
echo $i % 3, "\n";
}
Это дает вывод:
1
2
0
1
2
0
1
2
0
1
Как видите, оно повторяется каждые 3 раза, даже если значение $i
увеличивается бесконечно.
Далее вам необходимо вычислить значение для $i
на основе сегодняшней даты. Вы можете использовать diff
, чтобы сравнить сегодняшнюю дату с какой-то датой в прошлом, и это даст вам количество дней, которые вы можете по модулю.
Вот пример, в котором не используется сегодняшняя дата, а вместо этого используется дата, основанная на цикле for, чтобы вы могли четко видеть шаблон:
<?php
$reference_date = date_create("2000-01-01");
for ($i = 1; $i <= 10; $i++) {
$date = date_create("2019-01-$i");
$days_since_reference = $date->diff($reference_date)->format('%a');
$modulo = $days_since_reference % 3;
$show_message = $modulo == 0 ? "show message :)" : "don't show message";
echo $date->format('Y-m-d') . " : $days_since_reference : $modulo : $show_message\n";
}
Вывод:
2019-01-01 : 6940 : 1 : don't show message
2019-01-02 : 6941 : 2 : don't show message
2019-01-03 : 6942 : 0 : show message :)
2019-01-04 : 6943 : 1 : don't show message
2019-01-05 : 6944 : 2 : don't show message
2019-01-06 : 6945 : 0 : show message :)
2019-01-07 : 6946 : 1 : don't show message
2019-01-08 : 6947 : 2 : don't show message
2019-01-09 : 6948 : 0 : show message :)
2019-01-10 : 6949 : 1 : don't show message