Возникли проблемы с DateTime-> sub - PullRequest
0 голосов
/ 24 мая 2019

У меня сложилась довольно сложная ситуация, я сейчас пытаюсь написать что-то, что будет напоминать об определенных событиях или задачах. Для этого у меня есть функция ajax, которая будет проверять каждые 10 минут, есть ли напоминание для отображения. Работает нормально, пока я не попробую сравнить дату напоминания и сегодняшнюю дату.

Я обращаюсь к своей базе данных, чтобы получить все события, которые имеют флаг для напоминания, и я получаю продолжительность, необходимую для этого напоминания (например, 15 минут, 3 часа, 2 недели) через уже написанную функцию, которая будет дайте мне продолжительность в минутах.

Основная проблема заключается в том, что, когда я пытаюсь вычесть продолжительность из моей текущей даты (чтобы иметь дату напоминания), ничего не происходит, $ date_rappel, то же самое, что и $ date_current. Я искал везде, чтобы убедиться, что я делаю это неправильно, но я не вижу проблемы.

Я пытался вызвать trigger_error () и var_dump () для каждой отдельной переменной в моем коде, чтобы проверить, не было ли что-то странным, но все кажется нормальным.

$events = '[';

$zz=0;
for ($r=0;$r < count($array_search_result);$r++)
  {

  $data=new $class_name;
  $data->load($array_search_result[$r]);
  $rappel = get_simple_obj('reminder_table',$data->cle_antlist_rappels);

  $duree = $rappel['duree'];

  $tmp_date = strval($data->date_echeance);
  $tmp_heure = strval($data->heure_echeance);
  $date_and_time = $tmp_date." ".$tmp_heure;

  $date_current = new DateTime($date_and_time);

  $date_rappel = $date_current;

  if($duree < 60){
    $tmpinterval = 'PT'.$duree.'M';
    $interval = new DateInterval($tmpinterval); 
    $date_rappel->sub($interval);       
  }elseif($duree >= 60 && $duree < 1440){
    $duree = $duree / 60;
    $tmpinterval = 'PT'.$duree.'H';
    $interval = new DateInterval($tmpinterval); 
    $date_rappel->sub($interval);    
  }elseif($duree >= 1440 && $duree < 10080){
    $duree = $duree / 60 / 24;
    $tmpinterval = 'P'.$duree.'D';
    $interval = new DateInterval($tmpinterval);   
    $date_rappel->sub($interval);                        
  }else{
    $duree = $duree / 60 / 24 / 7;
    $tmpinterval = 'P'.$duree.'W';
    $interval = new DateInterval($tmpinterval);     
    $date_rappel->sub($interval);                    
  }

if($date_current < $date_rappel == true){
   // Add the event with the reminder to the ajax request                                                
}

$events .= $event;

$events .= ']';      

$returnSate = 'OK';
$status_response=0;

Это то, что возвращают trigger_error $date_current и $date_rappel:

PHP Notice:  11:39:00 2019-05-14 in .../operation-reminder.php on line 308
PHP Notice:  11:39:00 2019-05-14 in .../operation-reminder.php on line 309
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...