在使用DateTime-> sub

时间:2019-05-24 10:05:04

标签: php ajax datetime

我在这里有一种情况,我目前正在尝试编写一些可以提醒某些事件或任务的代码。为此,我有一个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;

这是$date_current$date_rappel的trigger_error返回的内容:

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

0 个答案:

没有答案