В зависимости от вашей реализации у вас может быть ненадежное время, генерируемое при конверсии, в основном из-за часового пояса, поэтому я опубликую с предположением, что вы используете что-то вроде ниже: $table->timeTz('start');
или $table->time('start');
The Difference есть часовой пояс, который может давать неверное значение при конвертации, как упомянуто выше.
Итак, для вас нужно сгенерировать такой формат, как 12:00 AM / PM, который в действительности должен выглядеть как 12:00 PM или 12:00 PM или 12 : 30:00 .....
Мы можем сделать что-то вроде ниже:
public function dateTest(){
$sampleTimeFromDb = "12:00:00"; //This is the basic sample time you're expected to get from your db ...
$sampleTimeFromDbFormated = Carbon::createFromTimeString($sampleTimeFromDb)->format('g:i a'); // am/pm, you can change a to A to get AM/PM
//Other samples which basically will generate same sample but with time stamp specified
$sampleCurrentTimeLag = Carbon::createFromTimeString("12:00:00","Africa/Lagos");
$sampleCurrentTimeReg = Carbon::createFromTimeString("01:00:00","America/Regina");
$def_format_ = Carbon::createFromTimeString($sampleCurrentTimeLag)->format('g:i A'); //Without timezone AM/PM
$lagosFormat = Carbon::createFromTimeString($sampleCurrentTimeLag, "Africa/Lagos")->format('g:i a');; //with timezone am/pm
$def_format_0 = Carbon::createFromTimeString($sampleCurrentTimeReg)->format('g:i A'); //Without timezone AM/PM
$americaFormat = Carbon::createFromTimeString($sampleCurrentTimeReg, "America/Regina")->format('g:i a');; //with timezone am/pm
$data = [
'_' => $sampleTimeFromDbFormated,
'a' => $def_format_,
'b' => $lagosFormat,
'c' => $def_format_0,
'd' => $americaFormat,
'e' => $americaFormat
];
return View("playground", $data);
}
Мой взгляд playground.blade.php
<!DOCTYPE html>
<html>
<body>
<p>{{$_}}</p>
<p>{{$a}}</p>
<p>{{$b}}</p>
<p>{{$c}}</p>
<p>{{$d}}</p>
<p>{{$e}}</p>
</body>
</html>
Вывод: ![enter image description here](https://i.stack.imgur.com/uhoPP.png)
Надеюсь, это поможет.