laraning / nova-time-field
A Laravel Nova field.
Installs: 622 780
Dependents: 3
Suggesters: 0
Security: 0
Stars: 64
Watchers: 2
Forks: 26
Open Issues: 9
Language:Vue
Requires
- php: >=7.1.0
README
This package contains a Nova field to allow you to store time values. Under the hood it uses the flatpickr default Laravel Nova Calendar library.
Installation
You can install this package in your Laravel Nova app via composer:
composer require laraning/nova-time-field
Usage
You can use the Laraning\NovaTimeField\TimeField
namespace in your Nova resource:
namespace App\Nova; use Laraning\NovaTimeField\TimeField; class BlogPost extends Resource { // ... public function fields(Request $request) { return [ // ... TimeField::make('Post start Time'), // ... ]; } }
By default the time component uses a 24 hour format. Still you can make it in 12h format like:
TimeField::make('Post start Time')->withTwelveHourTime(),
You can also change the default 5 minute increments to another number:
TimeField::make('Post start Time')->minuteIncrement(1),
You can make sure that all times entered are converted back to your base app timezone (set in config/app.php
) by calling
the withTimezoneAdjustments()
method on your field.
TimeField::make('Post start Time')->withTimezoneAdjustments(),
An example of this would be when your app is set to GMT but your user is in BST (GMT+1). The user would still be able to interact with the timefield in their local time, but the time would be saved into the database in GMT.
E.G. The user may select 14:00. They will always see the time as 14:00, but the database will save it as 13:00 as it makes the BST -> GMT adjustments behind the scenes.
As well as handling switching the time to and from your base app timezone, you may also pass in a timezone offset (in minutes),
such as the one returned by moment().utcOffset()
. This will then adjust the time to display with the adjusted timezone
rather than the users timezone. This is useful if you're saving the time in UTC along with the offset of the browser that
was used to submit it.
Here you can see how we'd move UTC to BST by passing an offset of 60
TimeField::make('Post start Time')->withTimezoneAdjustments(60),
Current development status
- Make release 0.1.0.
- Add minimal test scenarios.
- Add timezone support.
Changelog
Please see CHANGELOG for more information on what has changed recently.
License
The MIT License (MIT). Please see License File for more information.