codewiser / laravel-cast-datetime-tz
Laravel 时区 datetime 转换器
v1.0.3
2024-04-26 11:51 UTC
Requires
- php: ^8.0.2
- laravel/framework: ^9.0|^10.0|^11.0
Requires (Dev)
- phpunit/phpunit: ^10.1
README
Laravel 不尊重时区。使用 \Codewiser\Casts\AsDatetimeWithTZ
转换器可以修复这个错误行为。
之前
class Article extends \Illuminate\Database\Eloquent\Model { protected $casts = [ 'date' => 'datetime' ]; }
// e.g. Laravel has Europe/London (+01:00) timezone config()->set('app.timezone', 'Europe/London'); $model = new Article(); $model->date = '2000-01-01T10:00:00+02:00'; echo $model->date->format('c'); // Expecting 2000-01-01T09:00:00+01:00 // Actual 2000-01-01T10:00:00+01:00
之后
class Article extends \Illuminate\Database\Eloquent\Model { protected $casts = [ 'date' => \Codewiser\Casts\AsDatetimeWithTZ::class ]; }
// e.g. Laravel has Europe/London (+01:00) timezone config()->set('app.timezone', 'Europe/London'); $model = new Article(); $model->date = '2000-01-01T10:00:00+02:00'; echo $model->date->format('c'); // Expecting 2000-01-01T09:00:00+01:00 // Actual 2000-01-01T09:00:00+01:00