Rumah >pembangunan bahagian belakang >tutorial php >Menyesuaikan Format Tarikh Model di Laravel
Berikut adalah contoh menetapkan format tarikh global dalam kelas asas:
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use DateTimeInterface; class BaseModel extends Model { protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } }mari kita lihat contoh praktikal untuk menguruskan format tarikh yang berbeza dalam sistem tempahan:
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Casts\Attribute; use DateTimeInterface; class Booking extends Model { protected $casts = [ 'check_in' => 'datetime:Y-m-d', 'check_out' => 'datetime:Y-m-d', 'created_at' => 'datetime:Y-m-d H:i:s', ]; protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } protected function checkInFormatted(): Attribute { return Attribute::make( get: fn () => $this->check_in->format('l, F j, Y') ); } protected function duration(): Attribute { return Attribute::make( get: fn () => $this->check_in->diffInDays($this->check_out) ); } public function toArray() { return array_merge(parent::toArray(), [ 'check_in_formatted' => $this->checkInFormatted, 'duration_nights' => $this->duration, 'human_readable' => sprintf( '%s for %d nights', $this->check_in->format('M j'), $this->duration ) ]); } }Contoh ini menunjukkan bagaimana untuk memformat tarikh untuk harta tertentu menggunakan harta
untuk menghasilkan tarikh dan tempoh yang diformat. Kaedah $casts
menunjukkan cara menambah sifat tersuai ini kepada perwakilan array model. Attribute
toArray()
Ciri Serialization Tarikh Laravel Memastikan konsistensi dalam format tarikh sepanjang aplikasi sambil menyediakan fleksibiliti untuk kes penggunaan tertentu.
Atas ialah kandungan terperinci Menyesuaikan Format Tarikh Model di Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!