Rumah >pembangunan bahagian belakang >tutorial php >Menyesuaikan Format Tarikh Model di Laravel

Menyesuaikan Format Tarikh Model di Laravel

Karen Carpenter
Karen Carpenterasal
2025-03-07 01:13:09682semak imbas

Customizing Model Date Formats in Laravel

Laravel menyediakan pelbagai cara untuk mengawal format tarikh apabila model bersiri ke dalam array atau JSON. Dari pemformatan global hingga penyesuaian sifat -sifat tertentu, anda boleh memastikan konsistensi dalam paparan tarikh sepanjang aplikasi.

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 , dan bagaimana untuk membuat aksesor tersuai menggunakan kelas

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Cara menggunakan php dalam htmlArtikel seterusnya:Cara menggunakan php dalam html