kodventure/has-timezoned-attributes

Automatically adds *_tz attributes to Eloquent models for timestamp fields, based on the user's or application's timezone.

Maintainers

Package info

github.com/Kodventure/has-timezoned-attributes

pkg:composer/kodventure/has-timezoned-attributes

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.1 2025-04-30 23:25 UTC

This package is auto-updated.

Last update: 2026-03-29 01:12:49 UTC


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 timezone attribute is used.
  • If no user is authenticated, the app.timezone config 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.