laravel上的格式化时间

时间:2019-02-27 10:26:28

标签: php laravel

我想知道如何恢复表格上的时间格式吗? 例如start_time => 20:00和end_time 22:00。

在我的餐桌课程中,我有这个

public function up()
    {
        Schema::create('course', function (Blueprint $table) {
            $table->increments('id');
            $table->date('date_seance');
            $table->time('start_time');
            $table->time('end_time');
            $table->timestamps();
        });
    }

然后,在我的模型课程中,我拥有了

class Course extends Model
{
    //
    protected $dates = ['date_seance', 'start_time', 'end_time'];
}

在我的视图index.blade

@foreach($course as $item)
<tr>
   <td> {{$item->date_seance->format('d/m/Y') }}</td>
   <td> {{$item->start_time}}</td>
   <td> {{$item->end_time}}</td>

感谢您的帮助。

5 个答案:

答案 0 :(得分:0)

列的类型是Carbon类的实例 怎么做呢?

 <td> {{$item->date_seance->toDateString() }}</td>

答案 1 :(得分:0)

尝试以下格式,您已经及时存储了它们,因此无需转换为strtotime

<td> {{date('H:i', $item->start_time) }}</td>

答案 2 :(得分:0)

我认为您无法在日期中使用'start_time''end_time',因为它们不能使用。

class Course extends Model
{
    protected $dates = ['date_seance'];
}

然后使用

<td> {{$item->date_seance->format('d/m/Y') }}</td>
<td> {{date('H:i', strtotime($item->start_time)) }}</td>
<td> {{date('H:i', strtotime($item->end_time)) }}</td>

答案 3 :(得分:0)

Mutators Accessors 是处理这些情况的最佳选择。 因为如果必须在多个页面上显示同一列(start_time),那么我们必须分别在每个页面上分别重新格式化时间。

如果您使用 Mutators Accessors ,则可以轻松地在一个地方设置其格式并将其作为属性随意调用

假设您有一个名为start_time的时间戳记,您在其中以toTimeString() or H:i or h:i格式保存时间。

如果要以其他格式显示并保存为toTimeString,则需要以下内容

  1. 诱变器setStartTimeAttribute以laravel格式节省时间
  2. 访问者getStartTimeAttribute,以h:i or H:i

    格式显示在不同页面上
    public function setStartDateAttribute($value)
    {
        $this->attributes['start_time'] = Carbon::parse($value)->format('H:i');
    }
    public function getStartDateAttribute()
    {
         return Carbon::parse($this->attributes['start_time'])->format('H:i');
    }
    

现在,您可以按以下方式访问格式化时间 $object->start_time,即20:00

答案 4 :(得分:-1)

您应该尝试以下操作:

<td> {{date('d/m/Y H:i', strtotime($item->date_seance)) }}</td>