Timezone

Validates that a value is a valid timezone identifier (e.g. Europe/Paris).

値が有効なタイムゾーン識別子 (Europe/Paris など) であることを検証します。
Applies to property or method
Class Timezone
Validator TimezoneValidator

Basic Usage

Suppose you have a UserSettings class, with a timezone field that is a string which contains any of the PHP timezone identifiers (e.g. America/New_York):

PHP タイムゾーン識別子 (America/New_York など) のいずれかを含む astring である timezone フィールドを持つ UserSettings クラスがあるとします。
  • Attributes
    属性
  • YAML
    YAML
  • XML
    XML
  • PHP
    PHP
1
2
3
4
5
6
7
8
9
10
// src/Entity/UserSettings.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class UserSettings
{
    #[Assert\Timezone]
    protected $timezone;
}

Note

ノート

As with most of the other constraints, null and empty strings are considered valid values. This is to allow them to be optional values. If the value is mandatory, a common solution is to combine this constraint with NotBlank.

他のほとんどの制約と同様に、null および空の文字列は有効な値と見なされます。これは、それらをオプションの値にできるようにするためです。値が必須の場合、一般的な解決策は、この制約と NotBlank を組み合わせることです。

Options

countryCode

type: string default: null

タイプ: 文字列 デフォルト: null

If the zone option is set to \DateTimeZone::PER_COUNTRY, this option restricts the valid timezone identifiers to the ones that belong to the given country.

ゾーン オプションが \DateTimeZone::PER_COUNTRY に設定されている場合、このオプションは有効なタイムゾーン識別子を指定された国に属するものに制限します。

The value of this option must be a valid ISO 3166-1 alpha-2 country code (e.g. CN for China).

このオプションの値は、有効な ISO 3166-1 alpha-2 国コード (中国の CN など) でなければなりません。

groups

type: array | string

タイプ: 配列 |ストリング

It defines the validation group or groups of this constraint. Read more about validation groups.

この制約の検証グループを定義します。検証グループの詳細を参照してください。

intlCompatible

type: boolean default: false

タイプ: ブール デフォルト: false

This constraint considers valid both the PHP timezone identifiers and the ICU timezones provided by Symfony's Intl component

この制約は、PHP タイムゾーン識別子と Symfony の Intl コンポーネントによって提供される ICU タイムゾーンの両方が有効であると見なします

However, the timezones provided by the Intl component can be different from the timezones provided by PHP's Intl extension (because they use different ICU versions). If this option is set to true, this constraint only considers valid the values compatible with the PHP \IntlTimeZone::createTimeZone() method.

ただし、Intl コンポーネントによって提供されるタイムゾーンは、PHP の Intl 拡張によって提供されるタイムゾーンとは異なる場合があります (異なる ICU バージョンを使用するため)。このオプションが true に設定されている場合、この制約は、PHP の \IntlTimeZone::createTimeZone() メソッドと互換性のある有効な値のみを考慮します。

message

type: string default: This value is not a valid timezone.

タイプ: 文字列 デフォルト: この値は有効なタイムゾーンではありません。

This message is shown if the underlying data is not a valid timezone identifier.

このメッセージは、基になるデータが有効なタイムゾーン識別子でない場合に表示されます。

You can use the following parameters in this message:

このメッセージでは、次のパラメーターを使用できます。
Parameter Description
{{ value }} The current (invalid) value
{{ label }} Corresponding form field label

payload

type: mixed default: null

タイプ: 混合 デフォルト: null

This option can be used to attach arbitrary domain-specific data to a constraint. The configured payload is not used by the Validator component, but its processing is completely up to you.

このオプションは、任意のドメイン固有のデータを制約に添付するために使用できます。構成されたペイロードは Validator コンポーネントによって使用されませんが、その処理は完全にユーザー次第です。

For example, you may want to use several error levels to present failed constraints differently in the front-end depending on the severity of the error.

たとえば、いくつかのエラー レベルを使用して、エラーの重大度に応じて、失敗した制約をフロントエンドで異なる方法で提示することができます。

zone

type: string default: \DateTimeZone::ALL

タイプ: 文字列 デフォルト: \DateTimeZone::ALL

Set this option to any of the following constants to restrict the valid timezone identifiers to the ones that belong to that geographical zone:

このオプションを次の定数のいずれかに設定して、有効な timezoneidentifiers をその地理的ゾーンに属するものに制限します。
  • \DateTimeZone::AFRICA
    \DateTimeZone::アフリカ
  • \DateTimeZone::AMERICA
    \DateTimeZone::アメリカ
  • \DateTimeZone::ANTARCTICA
    \DateTimeZone::南極大陸
  • \DateTimeZone::ARCTIC
    \DateTimeZone::北極
  • \DateTimeZone::ASIA
    \DateTimeZone::アジア
  • \DateTimeZone::ATLANTIC
    \DateTimeZone::アトランティック
  • \DateTimeZone::AUSTRALIA
    \DateTimeZone::オーストラリア
  • \DateTimeZone::EUROPE
    \DateTimeZone::ヨーロッパ
  • \DateTimeZone::INDIAN
    \DateTimeZone::INDIAN
  • \DateTimeZone::PACIFIC
    \DateTimeZone::太平洋

In addition, there are some special zone values:

さらに、いくつかの特別なゾーン値があります。
  • \DateTimeZone::ALL accepts any timezone excluding deprecated timezones;
    \DateTimeZone::ALL は非推奨のタイムゾーンを除くすべてのタイムゾーンを受け入れます。
  • \DateTimeZone::ALL_WITH_BC accepts any timezone including deprecated timezones;
    \DateTimeZone::ALL_WITH_BC 非推奨のタイムゾーンを含むすべてのタイムゾーンを受け入れます。
  • \DateTimeZone::PER_COUNTRY restricts the valid timezones to a certain country (which is defined using the countryCode option).
    \DateTimeZone::PER_COUNTRY は、有効なタイムゾーンを特定の国 (countryCode オプションを使用して定義) に制限します。