kodventure / has-timezoned-attributes
Automatically adds *_tz attributes to Eloquent models for timestamp fields, based on the user's or application's timezone.
Package info
github.com/Kodventure/has-timezoned-attributes
pkg:composer/kodventure/has-timezoned-attributes
v1.0.1
2025-04-30 23:25 UTC
Requires
- php: ^8.0
- illuminate/database: ^9.0|^10.0|^11.0|^12.0
README
Automatically adds *_tz attributes to your Eloquent models for timestamp fields, based on the user's or application's timezone.
Installation
composer require kodventure/has-timezoned-attributes
Usage
Add the trait to any model:
use Kodventure\HasTimezonedAttributes\HasTimezonedAttributes; class User extends Model { use HasTimezonedAttributes; protected $casts = [ 'created_at' => 'datetime', 'updated_at' => 'datetime', 'last_login_at' => 'datetime', ]; }
Then access:
$user->created_at_tz; $user->last_login_at_tz; $user->email_verified_at_tz; $user->getEmailVerifiedAtTzAttribute(); $user->getEmailVerifiedAtTz();
Timezone Resolution
- If a user is authenticated, their
timezoneattribute is used. - If no user is authenticated, the
app.timezoneconfig value is used. - You can override the timezone on a per-model basis by adding a
getTimezone()method to your model.
Thanks to GPT-4.