Javier Spagnoletti Hugo Hamon
Contributed by Javier Spagnoletti and Hugo Hamon in #30900

The list of Symfony constraints covers most of the common validation needs for web sites and applications. However, we keep listening to your feedback and adding new constraints proposed by the community.

In Symfony 4.3, we've added a new Timezone constraint to check that the given value is one of the valid timezones defined by PHP (e.g. Africa/Nairobi).

1
2
3
4
5
6
7
8
9
10
11
12
// src/Entity/UserSettings.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class UserSettings
{
    /**
     * @Assert\Timezone
     */
    protected $timezone;
}

In addition to the common options defined by most constraints (groups, message, payload) this constraint defines two additional options: zone (to restrict valid timezones to a geographical zone such as Asia or Australia) and countryCode (to restrict valid timezones to a single country):

1
2
3
4
5
6
7
8
9
// Consider valid only the timezones from countries in America continent

/** @Assert\Timezone(zone=\DateTimeZone::AMERICA) */
protected $timezone;

// Consider valid only the Chinese timezones

/** @Assert\Timezone(zone=\DateTimeZone::PER_COUNTRY, countryCode="CN") */
protected $timezone;
Published in #Living on the edge