Класс yii\validators\DateValidator
| Наследование | yii\validators\DateValidator » yii\validators\Validator » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Подклассы | yii\mongodb\validators\MongoDateValidator |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/validators/DateValidator.php |
DateValidator проверяет, представляет ли атрибут дату, время или дату и время в правильном $формате.
Он также может анализировать интернационализированные даты в определённом $языке, например 12 мая 2014, когда $формат настроен для использования шаблона времени в формате ICU.
Кроме того, можно ограничить дату определённым диапазоном, используя $min и $max.
Помимо проверки даты, он также может экспортировать разобранную метку времени в удобочитаемый для машины формат, который можно настроить с помощью $timestampAttribute. Для значений, включающих информацию о времени (а не только дату), часовой пояс также будет скорректирован. Предполагается, что часовой пояс входного значения указан свойством $timeZone, а целевой часовой пояс будет UTC, когда $timestampAttributeFormat равен null (экспорт как метка времени Unix) или $timestampAttributeTimeZone в противном случае. Если вы хотите избежать преобразования часового пояса, убедитесь, что $timeZone и $timestampAttributeTimeZone одинаковы.
Общедоступные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $attributeNames | массив | Имена атрибутов. | yii\validators\Validator |
| $attributes | массив|строка | Атрибуты, которые должны быть валидированы этим валидатором. | yii\validators\Validator |
| $behaviors | yii\base\Behavior[] | Список поведений, присоединённых к этому компоненту. | yii\base\Component |
| $builtInValidators | массив | Список встроенных валидаторов (имя => класс или конфигурация). | yii\validators\Validator |
| $enableClientValidation | логическое значение | Включить валидацию на стороне клиента для этого валидатора. | yii\validators\Validator |
| $except | массив|строка | Сценарии, для которых валидатор не должен применяться. | yii\validators\Validator |
| $format | строка | Формат даты, которому должно соответствовать значение, подлежащее валидации. | yii\validators\DateValidator |
| $isEmpty | вызываемый объект | PHP вызываемый объект, заменяющий стандартную реализацию isEmpty(). | yii\validators\Validator |
| $locale | строка | Идентификатор локали, используемый для локализации разбора даты. | yii\validators\DateValidator |
| $max | целое число|строка | Максимальное значение даты. | yii\validators\DateValidator |
| $maxString | строка | Пользовательское значение максимального значения для отображения в сообщении об ошибке. | yii\validators\DateValidator |
| $message | строка | Пользовательское сообщение об ошибке. | yii\validators\Validator |
| $min | целое число|строка | Минимальное значение даты. | yii\validators\DateValidator |
| $minString | строка | Пользовательское значение минимального значения для отображения в сообщении об ошибке. | yii\validators\DateValidator |
| $on | массив|строка | Сценарии, к которым может применяться валидатор. | yii\validators\Validator |
| $skipOnEmpty | логическое значение | Пропустить эту правило валидации, если значение атрибута равно null или пустой строке. | yii\validators\Validator |
| $skipOnError | логическое значение | Пропустить это правило валидации, если для валидируемого атрибута уже есть ошибка валидации по каким-либо предыдущим правилам. | yii\validators\Validator |
| $timeZone | строка | Часовой пояс, который используется для разбора значений даты и времени. | yii\validators\DateValidator |
| $timestampAttribute | строка | Имя атрибута, который будет содержать результат разбора. | yii\validators\DateValidator |
| $timestampAttributeFormat | строка | Формат, используемый при заполнении $timestampAttribute. | yii\validators\DateValidator |
| $timestampAttributeTimeZone | строка | Часовой пояс, используемый при заполнении $timestampAttribute. | yii\validators\DateValidator |
| $tooBig | строка | Пользовательское сообщение об ошибке, используемое, когда значение больше, чем $max. | yii\validators\DateValidator |
| $tooSmall | строка | Пользовательское сообщение об ошибке, используемое, когда значение меньше, чем $min. | yii\validators\DateValidator |
| $type | строка | Тип валидатора. | yii\validators\DateValidator |
| $when | вызываемый объект | PHP вызываемый объект, результат которого определяет, следует ли применять этот валидатор. | yii\validators\Validator |
| $whenClient | строка | Имя JavaScript-функции, возвращаемое значение которой определяет, следует ли применять этот валидатор на стороне клиента. | yii\validators\Validator |
Общедоступные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает метод с указанным именем, который не является методом класса. | yii\base\Component |
| __clone() | Этот метод вызывается после создания объекта путем клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства компонента. | yii\base\Component |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Component |
| __set() | Устанавливает значение свойства компонента. | yii\base\Component |
| __unset() | Устанавливает свойство компонента в null. | yii\base\Component |
| addError() | Добавляет ошибку об указанном атрибуте в объект модели. | yii\validators\Validator |
| attachBehavior() | Присоединяет поведение к этому компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведений к компоненту. | yii\base\Component |
| behaviors() | Возвращает список поведений, по которым должен вести себя этот компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Component |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Component |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| clientValidateAttribute() | Возвращает JavaScript, необходимый для выполнения проверки на стороне клиента. | yii\validators\Validator |
| createValidator() | Создает объект валидатора. | yii\validators\Validator |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. | yii\base\Component |
| getAttributeNames() | Возвращает очищенные имена атрибутов без символа ! в начале | yii\validators\Validator |
| getBehavior() | Возвращает объект поведения с указанным именем. | yii\base\Component |
| getBehaviors() | Возвращает все поведения, присоединённые к этому компоненту. | yii\base\Component |
| getClientOptions() | Возвращает параметры проверки на стороне клиента. | yii\validators\Validator |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчик, прикрепленный к событию с указанным именем. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Component |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство для этого компонента. | yii\base\Component |
| init() | Инициализирует объект. | yii\validators\DateValidator |
| isActive() | Возвращает значение, указывающее, активен ли валидатор для данного сценария и атрибута. | yii\validators\Validator |
| isEmpty() | Проверяет, пусто ли заданное значение. | yii\validators\Validator |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| on() | Присоединяет обработчик событий к событию. | yii\base\Component |
| trigger() | Срабатывает событие. | yii\base\Component |
| validate() | Проверяет заданное значение. | yii\validators\Validator |
| validateAttribute() | Проверяет отдельный атрибут. | yii\validators\DateValidator |
| validateAttributes() | Проверяет указанный объект. | yii\validators\Validator |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| formatMessage() | Форматирует сообщение с использованием I18N или простой strtr, если \Yii::$app недоступен. | yii\validators\Validator |
| parseDateValue() | Парсит строку даты в метку времени Unix. | yii\validators\DateValidator |
| validateValue() | Проверяет значение. | yii\validators\DateValidator |
Константы
| Константа | Значение | Описание | Определено в |
|---|---|---|---|
| TYPE_DATE | 'date' | Константа для указания валидации $type как значения даты, используемая для валидации с коротким форматом intl. | yii\validators\DateValidator |
| TYPE_DATETIME | 'datetime' | Константа для указания валидации $type как значения даты и времени, используемая для валидации с коротким форматом intl. | yii\validators\DateValidator |
| TYPE_TIME | 'time' | Константа для указания валидации $type как значения времени, используемая для валидации с коротким форматом intl. | yii\validators\DateValidator |
Подробное описание свойств
$format общедоступное свойство
Формат даты, которому должно соответствовать проверяемое значение. Это может быть шаблон даты и времени, как описано в руководстве ICU.
В качестве альтернативы это может быть строка, начинающаяся с php: и представляющая формат, распознаваемый классом PHP DateTime. См. http://php.net/manual/en/datetime.createfromformat.php для поддерживаемых форматов.
Если это свойство не задано, значение по умолчанию будет получено из Yii::$app->formatter->dateFormat, см. yii\i18n\Formatter::$dateFormat для получения подробностей. С версии 2.0.8 значение по умолчанию определяется из различных форматов класса форматировщика, в зависимости от значения $type:
- если тип TYPE_DATE, значение по умолчанию будет взято из yii\i18n\Formatter::$dateFormat,
- если тип TYPE_DATETIME, оно будет взято из yii\i18n\Formatter::$datetimeFormat,
- а если тип TYPE_TIME, оно будет yii\i18n\Formatter::$timeFormat.
Вот некоторые примеры значений:
'MM/dd/yyyy' // date in ICU format 'php:m/d/Y' // the same date in PHP format 'MM/dd/yyyy HH:mm' // not only dates but also times can be validated
Примечание: используемые подлежащие парсеры дат различаются в зависимости от формата. Если вы используете формат ICU, и расширение PHP intl установлено, используется IntlDateFormatter для разбора входного значения. Во всех остальных случаях используется класс PHP DateTime. IntlDateFormatter имеет преимущество, что может анализировать международные даты, такие как 12. Mai 2015 или 12 мая 2014, в то время как PHP-парсер ограничен только английским языком. Однако PHP-парсер более строг в отношении входного формата, так как не примет 12.05.05 для формата php:d.m.Y, но IntlDateFormatter примет его для формата dd.MM.yyyy. Если вам необходимо использовать IntlDateFormatter, вы можете избежать этой проблемы, указав минимальную дату.
public string $format = null
$locale общественное свойство
Идентификатор языка, используемый для локализации разбора даты. Это эффективно только при установке расширения PHP intl. Если не задано, будет использован язык форматера. См. также yii\i18n\Formatter::$locale.
public string $locale = null
$max общественное свойство (доступно с версии 2.0.4)
Верхний предел даты. По умолчанию равен null, что означает отсутствие верхнего предела. Это может быть метка времени Unix или строка, представляющая значение даты и времени. Если это свойство является строкой, $format будет использоваться для его анализа.
См. также $tooBig для настраиваемого сообщения, используемого при превышении максимального значения даты.
public integer|string $max = null
$maxString общественное свойство (доступно с версии 2.0.4)
Пользовательское значение верхнего предела для отображения в сообщении об ошибке. Если это свойство равно null, будет использоваться значение $max (перед анализом).
public string $maxString = null
$min общественное свойство (доступно с версии 2.0.4)
Нижний предел даты. По умолчанию равен null, что означает отсутствие нижнего предела. Это может быть метка времени Unix или строка, представляющая значение даты и времени. Если это свойство является строкой, $format будет использоваться для его анализа.
См. также $tooSmall для настраиваемого сообщения, используемого при превышении минимального значения даты.
public integer|string $min = null
$minString общественное свойство (доступно с версии 2.0.4)
Пользовательское значение нижнего предела для отображения в сообщении об ошибке. Если это свойство равно null, будет использоваться значение $min (перед анализом).
public string $minString = null
$timeZone общественное свойство
Часовой пояс для разбора значений даты и времени. Это может быть любое значение, которое может быть передано в date_default_timezone_set(), например UTC, Europe/Berlin или America/Chicago. Обратитесь к справочнику php для доступных часовых поясов. Если это свойство не задано, будет использован часовой пояс yii\base\Application::$timeZone.
public string $timeZone = null
$timestampAttribute общественное свойство
Имя атрибута, который получит результат разбора. Когда это свойство не равно null и валидация успешна, указанный атрибут получит результат разбора.
Это может быть тот же атрибут, что и валидируемый. Если это так, исходное значение будет перезаписано значением отметки времени после успешной валидации.
Обратите внимание, что при использовании этого свойства входное значение будет преобразовано в метку времени Unix, которая по определению находится в UTC, поэтому будет выполнено преобразование из входного часового пояса в UTC. При определении $timestampAttributeFormat вы можете контролировать преобразование, задав $timestampAttributeTimeZone на другое значение, отличное от 'UTC'.
См. также:
public string $timestampAttribute = null
$timestampAttributeFormat общественное свойство (доступно с версии 2.0.4)
Формат, используемый при заполнении $timestampAttribute. Формат может быть указан так же, как и для $format.
Если не задано, $timestampAttribute получит метку времени Unix. Если $timestampAttribute не задан, это свойство будет проигнорировано.
См. также:
public string $timestampAttributeFormat = null
$timestampAttributeTimeZone общественное свойство (доступно с версии 2.0.4)
Часовой пояс, используемый при заполнении $timestampAttribute. По умолчанию UTC.
Это может быть любое значение, которое может быть передано в date_default_timezone_set(), например UTC, Europe/Berlin или America/Chicago. Обратитесь к справочнику php для доступных часовых поясов.
Если $timestampAttributeFormat не задан, это свойство будет проигнорировано.
См. также $timestampAttributeFormat.
public string $timestampAttributeTimeZone = 'UTC'
$tooBig общественное свойство (доступно с версии 2.0.4)
Определяемое пользователем сообщение об ошибке, используемое, когда значение больше, чем $max.
public string $tooBig = null
$tooSmall общественное свойство (доступно с версии 2.0.4)
Определяемое пользователем сообщение об ошибке, используемое, когда значение меньше, чем $min.
public string $tooSmall = null
$type общественное свойство (доступно с версии 2.0.8)
Тип валидатора. Указывает, должно ли проверяться значение даты, времени или даты и времени. Это свойство влияет на значение по умолчанию $format и также устанавливает правильное поведение, когда $format является одним из коротких форматов intl, short, medium, long, или full.
Это эффективно только при установке расширения PHP intl.
Это свойство может быть установлено в следующие значения:
- TYPE_DATE - (по умолчанию) для проверки только значений даты, это означает, что только значения, не включающие диапазон времени, являются допустимыми.
- TYPE_DATETIME - для проверки значений даты и времени, содержащих как часть даты, так и часть времени.
- TYPE_TIME - для проверки значений времени, не содержащих информации о дате.
public string $type = self::TYPE_DATE
Подробное описание методов
init() public метод
Инициализирует объект.
Этот метод вызывается в конце конструктора после инициализации объекта заданными настройками.
| public void init ( ) |
|---|
parseDateValue() защищённый метод
Парсит строку даты в метку времени UNIX
| protected integer|false parseDateValue ( $value ) | ||
|---|---|---|
| $value | string |
Строка, представляющая дату |
| return | integer|false |
Метка времени UNIX или |
validateAttribute() public метод
Валидирует отдельный атрибут.
Дочерние классы должны реализовать этот метод для обеспечения фактической логики валидации.
| public void validateAttribute ( $model, $attribute ) | ||
|---|---|---|
| $model | yii\base\Model |
Модель данных, подлежащая валидации |
| $attribute | string |
Имя атрибута, подлежащего валидации. |
validateValue() защищённый метод
Валидирует значение.
Класс валидатора может реализовать этот метод для поддержки валидации данных вне контекста модели данных.
| protected array|null validateValue ( $value ) | ||
|---|---|---|
| $value | mixed |
Значение данных, подлежащее валидации. |
| return | array|null |
Сообщение об ошибке и параметры, которые необходимо вставить в сообщение об ошибке. Должен быть возвращен Null, если данные валидны. |
| throws | yii\base\NotSupportedException |
если валидатор не поддерживает валидацию данных без модели |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-validators-datevalidator.html