Php 刀片中的Laravel格式时间列

Php 刀片中的Laravel格式时间列,php,laravel,laravel-blade,Php,Laravel,Laravel Blade,在Laravel中,我知道我可以使用Carbon将日期格式化为更可读的字符串。对于像{{{$event->time->format('hi')}这样的time列,有没有办法做到这一点?我在所有搜索中看到的所有内容都与datetime列相关。我做的很多应用程序都是针对日程安排的,所以有“开始”时间和“结束”时间。对于这些,我使用$table->time('start')在我的迁移中,不是时间戳。问题是,当我使用Blade中的字段时,我需要将其格式化为12小时AM/PM格式,我永远找不到好方法。试试

在Laravel中,我知道我可以使用Carbon将日期格式化为更可读的字符串。对于像
{{{$event->time->format('hi')}
这样的
time
列,有没有办法做到这一点?我在所有搜索中看到的所有内容都与
datetime
列相关。我做的很多应用程序都是针对日程安排的,所以有“开始”时间和“结束”时间。对于这些,我使用
$table->time('start')在我的迁移中,不是时间戳。问题是,当我使用Blade中的字段时,我需要将其格式化为12小时AM/PM格式,我永远找不到好方法。

试试看

在模型中,确保在cast数组中有字段

protected $casts = [
    'created_at' => 'datetime:h i',
];


$event->time->format('h i')->toTimeString()   
也试试下面

public function getformattedAttribute()
{
    return \Carbon\Carbon::createFromFormat('h i', $this->attributes['time']);
}
并使用$event->formatted运行它

根据您的实现,您可能会在转换时生成一些不可靠的时间,这主要是因为时区的原因,因此我将假设您正在使用以下内容:
$table->timeTz('start')
$table->time('start')
这里的差异是时区,它可以在如上所述的转换时产生不正确的值

因此,您可以生成诸如12小时AM/PM之类的格式,实际上应该是12:00 PM或12:00 PM或12:30 PM

我们可以这样做:

}

我的视图
playery.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>

{{${}

{{$a}

{{$b}

{{$c}

{{$d}

{{$e}}

输出:


希望它能帮上忙。

我认为您应该改用unix时间戳,而carbon可以帮助您轻松地格式化它。@Whates\u Corps我知道时间戳可以让我这样做。我只是想知道如果我更喜欢使用时间列,是否有类似的情况。建议:将日期和时间存储在事件的单个列中。原因:时区。最好的例子是在英国观看美国的PPV节目。它将在美国的某一天开始,但实际上已经是英国的第二天了,因为它将在当地时间午夜之后开始。@Packy您能确认下面的答案是否适用于您吗?返回“对字符串的成员函数格式()的调用”。我认为,由于我无法在blade中将
$event->time
转换为
日期
,因此它只会以字符串的形式返回。看起来您在模型的转换数组中没有该字段,我更新了我的答案,请检查是否仍然存在错误<代码>发现意外数据。发现意外数据
您是否在
时间
列中尝试过此操作?不是datetime或Timestamph,您确定列中有有效数据吗,让我用另一种方法更新答案我刚刚更新了我的答案,我担心
time
字段会产生问题,因为它可以保留并用于内部使用,但是,请尝试上面的方法,让我们看看
<!DOCTYPE html>
<html>
<body>

<p>{{$_}}</p>
<p>{{$a}}</p>
<p>{{$b}}</p>
<p>{{$c}}</p>
<p>{{$d}}</p>
<p>{{$e}}</p>

</body>
</html>