Plugins
Timezone Field
Timezone select field.
Form Builder
Table Column
Table Builder
Form Field
Dark theme support
Yes
Multi language support
No
Compatible with the latest version
Supported versions: 2.x - 3.x
Documentation

Latest Version on Packagist Code Style Action Status Total Downloads

A timezone select field for Laravel Filament.

#Installation

composer require tapp/filament-timezone-field:"^3.0"

Note For Filament 2.x check the 2.x branch

#Usage

#Form Field

Add to your Filament resource:

use Tapp\FilamentTimezoneField\Forms\Components\TimezoneSelect;
 
public static function form(Form $form): Form
{
return $form
->schema([
// ...
TimezoneSelect::make('timezone'),
// ...
]);
}

#Appareance

Filament Timezone Field

#Options

To use GMT instead of UTC (default is UTC), add the ->timezoneType('GMT') method:

use Tapp\FilamentTimezoneField\Forms\Components\TimezoneSelect;
 
public static function form(Form $form): Form
{
return $form
->schema([
// ...
TimezoneSelect::make('timezone')
->timezoneType('GMT'),
// ...
]);
}
#List timezones by country

To list only the timezones for a country, you can pass the country code to ->byCountry() method. For example, to list only United States timezones:

TimezoneSelect::make('timezone')
->byCountry('US')

You can also pass an array with more than one country code:

TimezoneSelect::make('timezone')
->byCountry(['US', 'AU'])
#List timezones by region

To list the timezones for a region use the ->byRegion() method. You can specify a region with a Region enum value:

use Tapp\FilamentTimezoneField\Enums\Region;
 
TimezoneSelect::make('timezone')
->byRegion(Region::Australia)

or you can use one of the PHP's DateTimeZone predifined constants:

use DateTimeZone;
 
TimezoneSelect::make('timezone')
->byRegion(DateTimeZone::AUSTRALIA)

It's also possible to pass an array with more than one region:

use Tapp\FilamentTimezoneField\Enums\Region;
 
TimezoneSelect::make('timezone')
->byRegion([Region::Australia, Region::America])

💡 Tip: All Filament select field methods are available to use:

use Tapp\FilamentTimezoneField\Forms\Components\TimezoneSelect;
 
public static function form(Form $form): Form
{
return $form
->schema([
// ...
TimezoneSelect::make('timezone')
->searchable()
->required(),
// ...
]);
}

Optionally, hide either timezone offsets or timezone names, depending on your use case:

Filament Timezone Display Options

use Tapp\FilamentTimezoneField\Forms\Components\TimezoneSelect;
 
public static function form(Form $form): Form
{
return $form
->schema([
// ...
TimezoneSelect::make('timezone')
->hideNames(),
// ...
]);
}
use Tapp\FilamentTimezoneField\Forms\Components\TimezoneSelect;
 
public static function form(Form $form): Form
{
return $form
->schema([
// ...
TimezoneSelect::make('timezone')
->hideOffset(),
// ...
]);
}

#Table Column

use Tapp\FilamentTimezoneField\Tables\Columns\TimezoneColumn;
 
public static function table(Table $table): Table
{
return $table
->columns([
//...
TimezoneColumn::make('timezone')
->timezoneType('GMT')
->formattedOffsetAndTimezone(),
])
// ...
}

#Options

Method Description
->formattedTimezone() Show formatted timezone name
->formattedOffsetAndTimezone() Show formatted offset and timezone name
->timezoneType('GMT') Use GMT instead of UTC

#Table Filter

use Tapp\FilamentTimezoneField\Tables\Filters\TimezoneSelectFilter;
 
public static function table(Table $table): Table
{
return $table
//...
->filters([
TimezoneSelectFilter::make('timezone'),
// ...
])
}
Tapp Network

Tapp Network is a digital transformation agency. We deliver performance-driven solutions for organizations of all sizes to rapidly plan, build and grow their market share, revenue, and impact.

10
Plugins
242
Stars
More from this author
Featured Plugins