Timezone Field plugin screenshot
Dark mode ready
Multilingual support
Supports v5.x

Timezone Field

Community

Timezone select field.

Tags: Form Field Forms Table Column Tables
Supported versions:
5.x 4.x 3.x 2.x
Tapp Network avatar Author: Tapp Network

Package health

Beta

Automated checks of this plugin's Composer package

78 / 100
Security 61
Maintenance 100
Ecosystem 100
13 checks
  • Skipped: Current Laravel version supported
  • Passed: Current PHP version supported — No PHP constraint declared; package imposes no version restriction.
  • Skipped: Current Symfony version supported
  • Passed: Abandoned or archived — No consulted source marks the package abandoned (packagist, github).
  • Passed: Commit and release recency — Active: last commit 10 days ago; last release 79 days ago.
  • Passed: composer.lock not committed by library composer.lock is absent from the released dist archive.
  • Passed: Dist archive is lean
  • Failed: GitHub Actions pinned to SHA View details on Plumb
  • Passed: Open security advisories
  • Passed: Dependabot PR responsiveness — No open Dependabot PRs.
  • Failed: Dependabot or Renovate configured No dependency updater configuration found. View details on Plumb
  • Skipped: Dependency update cooldown configured
  • Passed: Provides a security policy
Third-party plugin. This is built by the community, not the Filament team. Filament does not review, endorse, or vet the security of plugins outside the filament/ namespace. Review the source and install at your own risk. Found malware or an unresolved security issue the author won't address? Report it .
Powered by Plumb Last scanned 20 hours ago

Documentation

Latest Version on Packagist Code Style Action Status Total Downloads

A timezone select field for Laravel Filament.

#Version Compatibility

Filament Filament Timezone Field Documentation
3.x/4.x/5.x 3.x Current
2.x 2.x Check the docs

#Installation

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

#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 change the language of displayed timezones, use the ->language() method passing the ISO 639-1 language code:

->language('es')

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(),
            // ...
        ]);
}

Optionally, hydrate the field with the timezone from the user's browser. If there is already a value, it will not be overridden.

use Tapp\FilamentTimezoneField\Forms\Components\TimezoneSelect;

public static function form(Form $form): Form
{
    return $form
        ->schema([
            // ...
            TimezoneSelect::make('timezone')
                ->getTimezoneFromBrowser()
            // ...
        ]);
}

#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'),
            // ...
        ])
}