PHPackages                             bertrandom/timezone-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. bertrandom/timezone-bundle

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

bertrandom/timezone-bundle
==========================

Readable Timezone Field Type for Symfony2

112.5k1PHP

Since Aug 15Pushed 11y ago1 watchersCompare

[ Source](https://github.com/ollietb/BertTimezoneBundle)[ Packagist](https://packagist.org/packages/bertrandom/timezone-bundle)[ RSS](/packages/bertrandom-timezone-bundle/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependenciesVersions (2)Used By (0)

Readable Timezone Field Type for Symfony2
=========================================

[](#readable-timezone-field-type-for-symfony2)

The stock Symfony2 timezone field type organizes all of the Olson Timezone Identifiers in PHP by Continent and displays them to the user. This dropdown is pretty bad from a UI perspective. This bundles provides an alternate dropdown that is similar to the one found when choosing a time zone on a Windows computer.

This is my first symfony2 bundle, feedback welcome!

Installation
------------

[](#installation)

Edit your `deps` file and add the following:

```
[BertTimezoneBundle]
    git=git://github.com/bertrandom/BertTimezoneBundle.git
    target=/bundles/Bert/TimezoneBundle

```

Run the vendors install script:

`bin/vendors install`

This will pull down the latest version of this bundle from github. Alternatively you can just put the files in `/vendor/bundles/Bert/TimezoneBundle`

Next, add the namespace to the end of the `registerNamespaces` bit in `autoload.php`:

```
$loader->registerNamespaces(array(
    'Symfony'          => array(__DIR__.'/../vendor/symfony/src', __DIR__.'/../vendor/bundles'),
    'Sensio'           => __DIR__.'/../vendor/bundles',

    .
    .
    .

	'Bert' 			   => __DIR__.'/../vendor/bundles',
));
```

Add the bundle in `AppKernel.php`:

```
$bundles = array(
    new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
    new Symfony\Bundle\SecurityBundle\SecurityBundle(),

    .
    .
    .

	new Bert\TimezoneBundle\BertTimezoneBundle(),
);
```

That's it, the field type should be ready to use.

Usage
-----

[](#usage)

Simply use the field type `readabletimezone` in your form builder, e.g.:

```
$builder
    ->add('username')
    ->add('plainPassword', 'repeated', array('type' => 'password'))
	->add('firstname')
	->add('lastname')
	->add('email', 'email')
	->add('timezone', 'readabletimezone')
;
```

Data
----

[](#data)

The data is taken from the work of two blog posts on the subject of readable timezones:

[Presenting a list of Timezones to the user](http://www.aviblock.com/blog/2009/03/12/presenting-a-list-of-timezones-to-the-user/)

[Olson Time Zone Database to Standard Windows Time Zone v0.1](http://www.timdavis.com.au/data/olson-time-zone-database-to-standard-windows-time-zone-v01/)

I've made mirrors of these two posts and put them in `Resources/source/mirrors/` in case the blog posts go away.

The timezone data itself can be found in `Resources/config/timezones.yml`

Credits
-------

[](#credits)

Bertrand Fan (`bertrand@fan.net`)

Timezone data provided by Avi Block and Tim Davis, see Data section for more details.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 50% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/c292a6c56c272b9c31da4a195de55521accd66989e84cd7e0767423a6743a275?d=identicon)[ollietb](/maintainers/ollietb)

---

Top Contributors

[![bertrandom](https://avatars.githubusercontent.com/u/57770?v=4)](https://github.com/bertrandom "bertrandom (6 commits)")[![ollietb](https://avatars.githubusercontent.com/u/342090?v=4)](https://github.com/ollietb "ollietb (5 commits)")[![rmasters](https://avatars.githubusercontent.com/u/34284?v=4)](https://github.com/rmasters "rmasters (1 commits)")

### Embed Badge

![Health badge](/badges/bertrandom-timezone-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/bertrandom-timezone-bundle/health.svg)](https://phpackages.com/packages/bertrandom-timezone-bundle)
```

###  Alternatives

[toopay/assetic-minifier

Assetic Filter for pure PHP JS and CSS minification

1356.8k3](/packages/toopay-assetic-minifier)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
