У меня есть клиент, который хочет, чтобы его приложение отправляло электронное письмо каждые три дня своим клиентам, которые не договорились о T & C для бронирования до даты бронирования. Это будет работа cron, но проблема, с которой я сталкиваюсь, заключается в том, как постоянно проверять каждые три дня на неизвестное время. Я мог бы просто установить множество проверок, если он еще не выполнен, но на каком-то этапе он может / разорвется, потому что я не проверил достаточно чеков. Каждая проверка будет выполнять ту же задачу отправки электронной почты.
Как я могу улучшить проверку if else каждые три дня?
Мой сценарий ниже
$sql = "SELECT * FROM bookings " . "WHERE DATE(date) > DATE(NOW()) " . "AND dateofquote != '' " . "AND email != '' " . "AND confirmed = 0"; $result = mysql_query($sql); $num_rows = mysql_numrows($result); $today = date('Ym-d'); $count = 3; if($num_rows){ while($row = mysql_fetch_assoc($result)){ $date_of_quote = $row['dateofquote']; $datetime1 = new DateTime($today); $datetime2 = new DateTime($date_of_quote); $interval = $datetime1->diff($datetime2); $diff = $interval->format('%a'); // How do I improve this process from here if($diff == '3'){ // send email } elseif($diff == '6'){ // send email } elseif($diff == '9'){ // send email } else { echo 'something went wrong'; } }
Используйте оператор Modulo
6%3
выйдет 0
9%3
также.
В твоем случае
if($diff % 3 == 0){ //send email ...}