Разница во времени показывает ошибку в Laravel Carbon - PullRequest
0 голосов
/ 11 июля 2019

Я пытался показать разницу между двумя разами в зависимости от посещаемости сотрудника поздно или рано войти в офис.
Я пытался использовать обычную процедуру Carbon, которая использует laravel, например diffInMinutes () или diffInHours ().
Но это порождает фатальную ошибку, которая для меня неожиданна.
Примечание: Carbon уже используется в верхней части контроллера, как показано ниже:
use Carbon \ 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 () on string»

Ответы [ 2 ]

2 голосов
/ 11 июля 2019

удали 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;
2 голосов
/ 11 июля 2019

Вы форматируете объект 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; 
...