Looking to hire Laravel developers? Try LaraJobs

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

Comments
comments powered by Disqus

A Laravel cast to convert strings to DateTimeZone instances

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

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.