/** * @inheritdoc */ public static function convertDatePhpOrIcuToJui($pattern, $type = 'date', $locale = null) { if ($type == 'time') { if (strncmp($pattern, 'php:', 4) === 0) { return static::convertTimePhpToJui(substr($pattern, 4)); } else { return static::convertTimePhpToJui(static::convertDateIcuToPhp($pattern, $type, $locale)); } } else { return parent::convertDatePhpOrIcuToJui($pattern, $type, $locale); } }
/** * @inheritdoc */ public function init() { parent::init(); if (is_null($this->dateFormat)) { $this->dateFormat = Yii::$app->getFormatter()->dateFormat; if (is_null($this->dateFormat)) { $this->dateFormat = 'medium'; } } if (is_null($this->altDateFormat)) { $this->altDateFormat = 'yyyy-MM-dd'; } Html::addCssClass($this->options, 'form-control'); $this->altOptions['id'] = $this->options['id'] . '-alt'; $this->clientOptions = array_merge(array_diff_assoc(['numberOfMonths' => $this->numberOfMonths, 'showButtonPanel' => $this->showButtonPanel], get_class_vars(__CLASS__)), $this->clientOptions, ['dateFormat' => FormatConverter::convertDatePhpOrIcuToJui($this->dateFormat), 'altField' => '#' . $this->altOptions['id'], 'altFormat' => FormatConverter::convertDatePhpOrIcuToJui($this->altDateFormat)]); if (array_key_exists('readonly', $this->options) && $this->options['readonly']) { if (!array_key_exists('beforeShow', $this->clientOptions)) { $this->clientOptions['beforeShow'] = new JsExpression('function (input, inst) { return false; }'); } } }
/** * @param string $phpFormat * @param string $icuFormat * @param string $juiFormat * @dataProvider formatsDataProvider */ public function testConvertDatePhpOrIcuToJui($phpFormat, $icuFormat, $juiFormat) { $this->assertEquals($juiFormat, FormatConverter::convertDatePhpOrIcuToJui($phpFormat)); $this->assertEquals($juiFormat, FormatConverter::convertDatePhpOrIcuToJui($icuFormat)); }