/** * Валидации времени до которого будет заблокирован пользователь * @param $attribute */ public function validateTime($attribute) { $DateValidator = new \yii\validators\DateValidator(['format' => 'php:Y-m-d']); $DateTimeValidator = new \yii\validators\DateValidator(['format' => 'php:Y-m-d H:i:s']); if (!$DateValidator->validate($this->{$attribute}) && !$DateTimeValidator->validate($this->{$attribute}) && !$DateTimeValidator->validate($this->{$attribute} . ':00')) { $this->addError($attribute, 'Неправильная дата'); } }
/** * Validates that all uploaded images have a timestamp of the correct * format. The alternate format is converted during later processing, so is * valid at initial submission. * @param string $attribute The attribute being validated. * @param array $params */ public function validateImageTimestamp($attribute, $params) { $images = UploadedFile::getInstances($this, $attribute); $validator = new \yii\validators\DateValidator(); $validator->format = 'yyyy-MM-dd HH:mm:ss'; $altValidator = new \yii\validators\DateValidator(); $altValidator->format = 'yyyy:MM:dd HH:mm:ss'; foreach ($images as $image) { if (file_exists($image->tempName)) { $exif = exif_read_data($image->tempName); if (!isset($exif['DateTimeOriginal'])) { $this->addError($attribute, ucwords($attribute) . ' must have date taken metadata.'); break; } $timestamp = $exif['DateTimeOriginal']; if (!$validator->validate($timestamp) && !$altValidator->validate($timestamp)) { $this->addError($attribute, ucwords($attribute) . ' must have correctly-formatted date taken metadata.'); break; } } } }