laravel-date-time-zone-cast maintained by maartenpaauw
Description
A Laravel cast to convert strings to DateTimeZone instances
Author
Last update
2026/04/20 21:57
(dev-dependabot/github_actions/dependabot/fetch-metadata-3.1.0)
License
Downloads
138
Tags
A Laravel cast to convert strings to DateTimeZone instances
A Laravel cast that allows you to store and retrieve DateTimeZone objects in your Eloquent models. This cast
automatically converts timezone strings (e.g. 'Europe/Amsterdam') to PHP DateTimeZone instances and vice versa when
interacting with your database.
Support Me
You can support me by buying Model States for Filament.
Installation
You can install the package via composer:
composer require maartenpaauw/laravel-date-time-zone-cast
Usage
1. Add the Cast to Your Model
Add the cast to your Eloquent model's $casts array:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Maartenpaauw\LaravelDateTimeZoneCast\DateTimeZoneCast;
class User extends Model
{
protected $casts = [
'timezone' => DateTimeZoneCast::class,
];
}
2. Database Schema
Ensure your database column is set up to store timezone strings:
Schema::table('users', function (Blueprint $table) {
$table->string('timezone')->nullable();
});
3. Working with the Model
$user = new User();
$user->timezone = 'Europe/Amsterdam';
$user->save();
$timezone = $user->timezone; // DateTimeZone instance
echo $timezone->getName(); // 'Europe/Amsterdam'
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Credits
License
The MIT License (MIT). Please see License File for more information.