You need to take into account the time zone for sending messages to the crm user right now, just came to the conclusion that you need to do this. Suppose the user has the opportunity to set the time zone field "timezone".
right now a script like this:
// Варианты напоминания $timeto = array( array("timeto" => "day_1","sec" => "86400",), array("timeto" => "houre_1","sec" => "3600"), array("timeto" => "min_30","sec" => "1800"), array("timeto" => "min_15","sec" => "900"), array("timeto" => "min_10","sec" => "600"), ); for ($i = 0; $i < count($timeto); $i++) { $time_to = $timeto[$i]['timeto']; $time_to_sec = $timeto[$i]['sec']; $rem_remember = mysql_query("SELECT * FROM `tasks` WHERE $time_to = '1' and status = '0'"); while($row_remember = mysql_fetch_array($rem_remember)){ $now_date = mktime(); $start_datetime = strtotime("$row_remember[start_date] $row_remember[start_time]"); $end_datetime = strtotime("$row_remember[end_date] $row_remember[end_time]"); $date_rememder = $start_datetime-$time_to_sec; $limit_date_rememder = 60+$date_rememder; // расчет времени вс секундах + 1 минута if ($now_date >= $date_rememder and $now_date <= $limit_date_rememder) { // отправляем письмо } }