2. Configuration

To display dates, this bundle uses timezone detectors to get the current timezone.

2.1. Timezone detectors

2.1.1. User timezone detector

If the model class for the authenticated user implements Sonata\IntlBundle\Timezone\TimezoneAwareInterface, it returns the timezone from its getTimezone() method. For convenience, the Sonata\IntlBundle\Timezone\TimezoneAwareTrait is available, which provides a basic implementation.

2.1.2. Locale timezone detector

The timezone is guessed from the current request locale. You can configure the locale / timezone mapping in the configuration:

# config/packages/sonata_intl.yaml

sonata_intl:
    timezone:
        locales:
            fr:    Europe/Paris
            en_UK: Europe/London

2.1.3. Configure timezone detectors

By default, user then locale timezone detectors are used. You can change the order in the configuration:

# config/packages/sonata_intl.yaml

sonata_intl:
    timezone:
        detectors:
            - sonata.intl.timezone_detector.user
            - sonata.intl.timezone_detector.locale_aware

IMPORTANT In order to guess the timezone, the detectors will be called in the order they are declared.

2.1.4. Default timezone

If no timezone was returned by any detector, a default one will be returned (from the date_default_timezone_get() method, configurable in the php.ini file).

You can override this default timezone in the configuration:

# config/packages/sonata_intl.yaml

sonata_intl:
    timezone:
        default: Europe/Paris