Download the PHP package medicplus/laravel-timezone without Composer
On this page you can find all versions of the php package medicplus/laravel-timezone. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download medicplus/laravel-timezone
More information about medicplus/laravel-timezone
Files in medicplus/laravel-timezone
Package laravel-timezone
Short Description Timezone storage, retrieval and date conversion for Laravel (Based on jamesmills/laravel-timezone)
License MIT
Homepage https://github.com/medic-plus/laravel-timezone
Informations about the package laravel-timezone
Laravel Timezone
An easy way to set a timezone for a user in your application and then show date/times to them in their local timezone.
This is a reimplementation of jamesmills/laravel-timezone and the cast feature from amandiobm/laravel-timezone
Requirements
Supported Laravel versions 9.x, 10.x, 11.x and 12.x
How does it work
This package listens for the \Illuminate\Auth\Events\Login
event and will then automatically set a timezone
on your user
model (stored in the database).
This package uses the torann/geoip package which looks up the users location based on their IP address. The package also returns information like the users currency and users timezone. You can configure this package separately if you require.
How to use
You can show dates to your user in their timezone by using
Or use our nice blade directive
Installation
You can install the package via composer:
You can publish and run the migrations with:
This will add a timezone
(can be changed in the configuration file) column to your users
table.
Examples
Showing date/time to the user in their timezone
Default will use the format jS F Y g:i:a
and will not show the timezone
If you wish you can set a custom format and also include a nice version of the timezone
Using blade directive
Making your life easier one small step at a time
And with custom formatting
Using models casting class
You can use the casting class for your models columns, this will let you save the dates in UTC format and then use the attribute accessor to get them in the user timezone.
Saving the users input to the database in UTC
This will take a date/time, set it to the users timezone then return it as UTC in a Carbon instance.
Custom Configuration
Publishing the config file is optional.
Flash Messages
When the timezone has been set, we display a flash message, By default, is configured to use Laravel default flash messaging, here are some of the optional integrations.
laracasts/flash - 'flash' => 'laracasts'
mercuryseries/flashy - 'flash' => 'mercuryseries'
spatie/laravel-flash - 'flash' => 'spatie'
mckenziearts/laravel-notify - 'flash' => 'mckenziearts'
usernotnull/tall-toasts - 'flash' => 'tall-toasts'
To override this configuration, you just need to change the flash
property inside the configuration file config/timezone.php
for the desired package. You can disable flash messages by setting 'flash' => 'off'
.
Overwrite existing timezones in the database
By default, the timezone will be overwritten at each login with the current user timezone. This behavior can be restricted to only update the timezone if it is blank by setting the 'overwrite' => false,
config option.
Default Format
By default, the date format will be jS F Y g:i:a
. To override this configuration, you just need to change the format
property inside the configuration file config/timezone.php
for the desired format.
Column Name
By default, this package uses the column timezone
in the users model, if you want to use a different column name you can change the column_name
property inside the configuration file config/timezone.php
. If you already executed the migrations, make sure to rollback the changes before applying this change.
Lookup Array
This lookup array configuration makes it possible to find the remote address of the user in any attribute inside the Laravel request
helper, by any key. Having in mind when the key is found inside the attribute, that key will be used. By default, we use the server
attribute with the key REMOTE_ADDR
. To override this configuration, you just need to change the lookup
property inside the configuration file config/timezone.php
for the desired lookup.
User Message
You may configure the message shown to the user when the timezone is set by changing the message
property inside the configuration file config/timezone.php
Underlying GeoIp Package
If you wish to customise the underlying torann/geoip
package you can publish the config file by using the command below.
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
- James Mills
- Amandio Magalhães
- Ivan Vasquez
- All Contributors
License
The MIT License (MIT). Please see License File for more information.
All versions of laravel-timezone with dependencies
laravel/framework Version ^9.0|^10.0|^11.0|^12.0
nesbot/carbon Version ^2.0|^3.0
torann/geoip Version ^3.0