The timezone package for Laravel provides an easy bi-directional conversion of DateTime into a variety of formats and locales.
Require the package in the composer.json
of your project.
composer require laralabs/timezone
Publish the configuration file.
php artisan vendor:publish --tag=timezone-config
Edit the configuration file and set your desired default display timezone and format.
A helper function and facade is available, choose your preferred method.
For the following examples the default timezone will be Europe/London
and d/m/Y H:i:s
as the default format.
Converting from storage
$date = '2018-09-11 11:00:00';
$result = timezone()->fromStorage($date);
$result->formatToDefault();
Output: 11/09/2018 12:00:00
Converting to storage
$date = '11/09/2018 12:00:00';
$result = timezone()->toStorage($date);
Output: 2018-09-11 11:00:00
The package will check for a timezone
key in the session before defaulting to the configuration value, alternatively it is possible to override the timezone with a second argument.
Overriding timezone
$toTimezone = 'Europe/London';
timezone()->fromStorage($date, $toTimezone);
$fromTimezone = 'Europe/London';
timezone()->toStorage($date, $fromTimezone);
Model Presenter
The package also comes with a presenter that can be added to models as a trait, for more information on this see the full documentation available below.
Full documentation can be found on the docs website.
Please raise an issue on GitHub if there is a problem.
This is open-sourced software licensed under the MIT License.