divineomega / dates-timezone-conversion-trait
自动将 Eloquent 模型的日期转换为当前用户的时区,反之亦然
v1.1.0
2019-04-11 07:35 UTC
Requires
- illuminate/database: ^5.1
- illuminate/support: ^5.1
This package is auto-updated.
Last update: 2024-09-11 19:30:48 UTC
README
此包提供了一种特性,可自动将 Eloquent 模型的日期转换为当前用户的时区,反之亦然。
安装
使用 Composer 可以轻松安装日期时区转换特性。只需从您项目的根目录运行以下命令。
composer require divineomega/dates-timezone-conversion-trait
如果您之前从未使用过 Composer 依赖管理器,请访问 Composer 网站 了解如何开始。
用法
首先,您必须将一个 timezone
字段添加到您应用程序的主要 User
模型中,并填充适当的时区。请参阅此 支持的时区列表。
然后,要利用此特性,只需在任意 Eloquent 模型中使用它。以下是一个使用特性的 User
模型示例。
<?php namespace App\Models; use DivineOmega\DatesTimezoneConversion\Traits\DatesTimezoneConversion; use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use Notifiable, DatesTimezoneConversion; protected $dates = [ 'last_logged_in_at', 'created_at', 'updated_at' ]; /* snipped */ }
使用特性后,以下转换将自动应用于模型中定义的任何 $dates
数组属性,如果当前有用户登录。
-
当读取属性时(例如
$user->last_logged_in_at
),日期时间对象将自动转换为用户的时区。 -
当写入属性时(例如
$user->last_logged_in_at
),日期时间将自动转换为 Laravel 应用程序的时区(如config/app.php
文件中定义)。