如何将 blade 视图的列时间属性更改为 AM 和 PM?
How can I change a column time attribute to AM and PM for the blade view?
我有一个名为 time_entries
的 table,列名是 time_start
。
我在上面插入 Carbon::now();
。列中存储的数据是 2021-08-26 09:51:37
和 blade.php
显示相同的结果。
型号TimeEntry
:
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class TimeEntry extends Model
{
use HasFactory;
public function user()
{
return $this->belongsTo(User::class);
}
public function getTimeStartAttribute($value)
{
return Carbon::createFromFormat('H:i:s', $value)->TimeString();
}
}
控制器:
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\TimeEntry;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class AttendanceController extends Controller
{
public function index()
{
$data = TimeEntry::where('user_id', Auth::user()->id)->paginate(2);
return view('Admin.Attendance-History-page', compact('data'));
}
}
Blade 视图:
<tbody id="table_data">
@foreach ($data as $punch)
<tr>
<td>{{ $punch->user->name }}</td>
<td>{{ $punch->user->employee_id }}</td>
<td>19 Feb 2019</td>
<td>{{ $punch->time_start }} </td>
<td>{{ $punch->time_end }}</td>
<td>9 hrs</td>
<td>
<span class="badge bg-inverse-success">Perfect</span>
</td>
<td>0</td>
</tr>
@endforeach
</tbody>
我想知道如何将 2021-08-26 09:51:37
的输出格式化为 Blade 中的 09:51:AM
之类的格式?
感谢您的帮助。
使用 PHP date()
方法可以直接解决此问题。
{{ date('h:m A', strtotime($punch->time_start)) }}
这将输出 09:51 AM
如果你想输出09:51:AM
那么只需要在m
之后添加:
并移除space,像这样:
{{ date('h:m:A', strtotime($punch->time_start)) }}
我有一个名为 time_entries
的 table,列名是 time_start
。
我在上面插入 Carbon::now();
。列中存储的数据是 2021-08-26 09:51:37
和 blade.php
显示相同的结果。
型号TimeEntry
:
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class TimeEntry extends Model
{
use HasFactory;
public function user()
{
return $this->belongsTo(User::class);
}
public function getTimeStartAttribute($value)
{
return Carbon::createFromFormat('H:i:s', $value)->TimeString();
}
}
控制器:
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\TimeEntry;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class AttendanceController extends Controller
{
public function index()
{
$data = TimeEntry::where('user_id', Auth::user()->id)->paginate(2);
return view('Admin.Attendance-History-page', compact('data'));
}
}
Blade 视图:
<tbody id="table_data">
@foreach ($data as $punch)
<tr>
<td>{{ $punch->user->name }}</td>
<td>{{ $punch->user->employee_id }}</td>
<td>19 Feb 2019</td>
<td>{{ $punch->time_start }} </td>
<td>{{ $punch->time_end }}</td>
<td>9 hrs</td>
<td>
<span class="badge bg-inverse-success">Perfect</span>
</td>
<td>0</td>
</tr>
@endforeach
</tbody>
我想知道如何将 2021-08-26 09:51:37
的输出格式化为 Blade 中的 09:51:AM
之类的格式?
感谢您的帮助。
使用 PHP date()
方法可以直接解决此问题。
{{ date('h:m A', strtotime($punch->time_start)) }}
这将输出 09:51 AM
如果你想输出09:51:AM
那么只需要在m
之后添加:
并移除space,像这样:
{{ date('h:m:A', strtotime($punch->time_start)) }}