两个时差显示Laravel Carbon中的错误

时间:2019-07-11 04:46:20

标签: laravel php-carbon

我试图根据员工显示两次之间的时差    迟到或早上班。
我试图像平常一样使用laravel像diffInMinutes()或diffInHours()这样的Carbon过程。
但是它会产生致命错误,这对我来说是意外的。
注意:碳已经在控制器顶部使用,如下所示:
使用碳\碳;
我也尝试使用

 protected $dates = ['created_at', 'updated_at','enter_time'];
   $official_Entry_time = Carbon::parse('10:00:00 AM')->format("H:i:s A");
   /* 
     $data->enter_time contain actual entry time. retrieve from database.
    Guess enter time is : $data->enter_time = '12:35:20 PM';
  */
   $Enter_Time = Carbon::parse($data->enter_time)->format("H:i:s A"); 
   $lateOrEarly = $official_Entry_time->diffInMinutes($Enter_Time);
   echo $lateOrEarly; 

我希望输出22分钟或其他时间。但其显示“在字符串上调用成员函数diffInMinutes()”

2 个答案:

答案 0 :(得分:2)

您将Carbon对象格式化为字符串。只需使用Carbon对象

$official_Entry_time = Carbon::parse('10:00:00 AM');

$Enter_Time = Carbon::parse($data->enter_time);

$lateOrEarly = $official_Entry_time->diffInMinutes($Enter_Time);

echo $lateOrEarly; 

答案 1 :(得分:2)

删除format(),然后尝试..它对我有用

 $official_Entry_time = Carbon::parse('10:00:00 AM');
    /* 
      $data->enter_time contain actual entry time. retrieve from database.
     Guess enter time is : $data->enter_time = '12:35:20 PM';
   */
    $Enter_Time = Carbon::parse('12:35:20 PM');
    $lateOrEarly = $official_Entry_time->diffInMinutes($Enter_Time);
    echo $lateOrEarly;