/**
  * @inheritdoc
  */
 public function init()
 {
     if ($this->format === null) {
         switch ($this->type) {
             case 'date':
                 $this->format = Yii::$app->formatter->dateFormat;
                 break;
             case 'time':
                 $this->format = Yii::$app->formatter->timeFormat;
                 break;
             case 'datetime':
                 $this->format = Yii::$app->formatter->datetimeFormat;
                 break;
         }
     }
     // if $this->format is a short format,
     // convert it to a pattern, so that DateValidator will respect $this->type.
     $this->format = FormatConverter::convertIcuShortFormatToPattern($this->format, $this->type, $this->locale);
     parent::init();
 }
 protected function registerFormat()
 {
     if ($this->format === false) {
         // do nothing, use moment's default
         return;
     }
     $format = $this->format;
     if ($format === null) {
         switch ($this->type) {
             case self::TYPE_DATE:
                 $format = Yii::$app->formatter->dateFormat;
                 break;
             case self::TYPE_TIME:
                 $format = Yii::$app->formatter->timeFormat;
                 break;
             case self::TYPE_DATETIME:
                 $format = Yii::$app->formatter->datetimeFormat;
                 break;
         }
     }
     if (is_string($format)) {
         if (strncmp($format, 'php:', 4) === 0) {
             $format = FormatConverter::convertDatePhpToMoment(substr($format, 4));
         } elseif (strncmp($format, 'moment:', 7) === 0) {
             $format = substr($format, 7);
         } else {
             $format = FormatConverter::convertDateIcuToMoment($format, $this->type, $this->locale);
         }
         $this->clientOptions['format'] = $format;
     }
 }