Laravel ialah rangka kerja web berasaskan PHP yang biasa digunakan untuk mencipta dan menyelenggara aplikasi web berskala besar. Zon waktu ialah isu kritikal untuk pembangunan aplikasi web, dan Laravel menyediakan cara mudah untuk mengurusnya. Dalam artikel ini, kami akan menerangkan cara menukar zon waktu dalam Laravel.
Konfigurasi zon waktu dalam Laravel terletak dalam fail config/app.php. Nilai lalai ialah zon waktu UTC (Coordinated Universal Time), anda boleh menukar zon waktu seperti berikut:
'timezone' => 'Asia/Shanghai',
Anda boleh menggantikan 'Asia/Shanghai'
dengan zon waktu yang anda perlukan (contohnya, Waktu Timur AS ialah 'America/New_York'
).
Jika anda perlu menukar zon waktu secara dinamik semasa aplikasi sedang berjalan, anda boleh menggunakan kelas Carbon
untuk mencapai ini. Kaedah Carbon
kelas setTimezone()
membolehkan anda menukar zon waktu pada masa jalan. Contohnya:
$date = Carbon::now()->setTimezone('America/New_York');
Kod di atas akan menukar masa semasa kepada Waktu Timur.
Dalam Laravel, anda juga boleh menetapkan zon waktu yang berbeza untuk setiap permintaan. Secara lalai, Laravel menggunakan zon waktu aplikasi. Walau bagaimanapun, jika anda menggunakan kaedah setLocale()
dalam perisian tengah, anda boleh menukar zon waktu pada setiap permintaan. Contohnya:
public function handle($request, Closure $next) { app()->setLocale('en'); return $next($request); }
Kod di atas akan menukar zon waktu kepada waktu London, UK.
Akhir sekali, anda juga boleh menetapkan zon waktu untuk model. Dalam kelas model, gunakan atribut $dateFormat
untuk menetapkan format tarikh dan tetapkan atribut $timezone
untuk menentukan zon waktu. Contohnya:
class User extends Model { /** * The attributes that should be mutated to dates. * * @var array */ protected $dates = [ 'created_at', 'updated_at', ]; /** * The attributes that should be cast to native types. * * @var array */ protected $casts = [ 'id' => 'integer', ]; /** * The attributes that should be mutated to date. * * @var string */ protected $dateFormat = 'Y-m-d H:i:s'; /** * The attributes that should be mutated to timezone. * * @var string */ protected $timezone = 'Asia/Shanghai'; }
Kod di atas akan menggunakan Asia/Shanghai
zon waktu untuk menghuraikan atribut created_at
dan updated_at
.
Ringkasan
Zon masa ialah isu kritikal untuk aplikasi web dan Laravel menyediakan pelbagai cara untuk mengurus zon waktu. Anda boleh menukar zon waktu dengan mengubah suai fail konfigurasi, menggunakan kelas Karbon, tahap permintaan atau tahap model. Walau bagaimanapun, ambil perhatian bahawa apabila menggunakan zon waktu dinamik, pastikan anda memformat tarikh dan masa dengan betul dalam kod anda untuk mengelakkan ralat penghuraian disebabkan zon waktu yang berbeza.
Atas ialah kandungan terperinci Bagaimana untuk menukar zon waktu dalam laravel? Analisis ringkas pelbagai kaedah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!