本文整理汇总了PHP中yii\helpers\FormatConverter类的典型用法代码示例。如果您正苦于以下问题:PHP FormatConverter类的具体用法?PHP FormatConverter怎么用?PHP FormatConverter使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了FormatConverter类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: run
public function run()
{
echo $this->renderWidget() . "\n";
if (is_string($this->noConflict)) {
/** @var AssetBundle $asset */
$asset = $this->noConflict;
$asset::register($this->view);
}
$asset = DatePickerAsset::register($this->view);
$containerID = $this->options['id'];
$language = $this->language ? $this->language : Yii::$app->language;
$this->view->registerJsFile($asset->baseUrl . '/locales/bootstrap-datepicker.' . $language . '.min.js', ['depends' => ['yii\\web\\JqueryAsset', 'omnilight\\assets\\DatePickerAsset']]);
if (strncmp($this->dateFormat, 'php:', 4) === 0) {
$format = substr($this->dateFormat, 4);
} else {
$format = FormatConverter::convertDateIcuToPhp($this->dateFormat, 'datetime', $language);
}
$this->clientOptions['format'] = $this->convertDateFormat($format);
$this->clientOptions['language'] = $language;
if ($this->noConflict) {
$this->registerNoConflict();
$this->registerClientOptions('datepickerNoConflict', $containerID);
} else {
$this->registerClientOptions('datepicker', $containerID);
}
}
示例2: testIntlUtf8Ru
public function testIntlUtf8Ru()
{
$this->assertEquals('d M Y \\г.', FormatConverter::convertDateIcuToPhp('dd MMM y \'г\'.', 'date', 'ru-RU'));
$this->assertEquals('dd M yy \'г\'.', FormatConverter::convertDateIcuToJui('dd MMM y \'г\'.', 'date', 'ru-RU'));
$formatter = new Formatter(['locale' => 'ru-RU']);
$this->assertEquals('24 авг 2014 г.', $formatter->asDate('2014-8-24', 'dd MMM y \'г\'.'));
}
示例3: init
/**
* @inheritdoc
*/
public function init()
{
if ($this->logicalFormat === null) {
$format = $this->type . 'Format';
$pattern = Yii::$app->formatter->{$format};
} else {
$pattern = $this->logicalFormat;
}
if (substr($pattern, 0, 4) === 'php:') {
$this->_phpLogicalFormat = substr($pattern, 4);
} else {
$this->_phpLogicalFormat = FormatConverter::convertDateIcuToPhp($pattern, $this->type);
}
if ($this->physicalFormat === null) {
$driverName = Yii::$app->db->driverName;
if (isset(static::$dbDatetimeFormat[$driverName])) {
$pattern = static::$dbDatetimeFormat[$driverName][$this->type];
} else {
$pattern = static::$dbDatetimeFormat['default'][$this->type];
}
} else {
$pattern = $this->physicalFormat;
}
if (substr($pattern, 0, 4) === 'php:') {
$this->_phpPhysicalFormat = substr($pattern, 4);
} else {
$this->_phpPhysicalFormat = FormatConverter::convertDateIcuToPhp($pattern, $this->type);
}
parent::init();
}
示例4: formatDateTimeValue
private function formatDateTimeValue($value, $format, $type)
{
$timeZone = $this->timeZone;
// avoid time zone conversion for date-only values
if ($type === 'date') {
list($timestamp, $hasTimeInfo) = $this->normalizeDatetimeValue($value, true);
if (!$hasTimeInfo) {
$timeZone = $this->defaultTimeZone;
}
} else {
$timestamp = $this->normalizeDatetimeValue($value);
}
if ($timestamp === null) {
return $this->nullDisplay;
}
if (strncmp($format, 'php:', 4) === 0) {
$format = substr($format, 4);
} else {
$format = FormatConverter::convertDateIcuToPhp($format, $type, $this->locale);
}
if ($timeZone != null) {
if ($timestamp instanceof \DateTimeImmutable) {
$timestamp = $timestamp->setTimezone(new \DateTimeZone($timeZone));
} else {
$timestamp->setTimezone(new \DateTimeZone($timeZone));
}
}
return $this->dateTime->date($format, $timestamp->getTimestamp());
}
示例5: run
public function run()
{
echo $this->renderWidget() . "\n";
$view = $this->getView();
$bundle = Asset::register($view);
$containerID = $this->inline ? $this->containerOptions['id'] : $this->options['id'];
$language = $this->language ? $this->language : \Yii::$app->language;
if (strncmp($this->dateFormat, 'php:', 4) === 0) {
$this->clientOptions['format'] = FormatConverter::convertDatePhpToJui(substr($this->dateFormat, 4), 'date', $language);
} else {
$this->clientOptions['format'] = FormatConverter::convertDateIcuToJui($this->dateFormat, 'date', $language);
}
$this->clientOptions['format'] = 'yyyy-mm-dd';
if ($language != 'en-US') {
if ($bundle->autoGenerate) {
$fallbackLanguage = substr($language, 0, 2);
if ($fallbackLanguage !== $language && !file_exists(\Yii::getAlias($bundle->sourcePath . "/locales/bootstrap-datepicker.{$language}.js"))) {
$language = $fallbackLanguage;
}
// $view->registerJsFile($bundle->baseUrl . "/locales/bootstrap-datepicker.$language.js");
}
$options = Json::encode($this->clientOptions);
$view->registerJs("\$('#{$containerID}').datepicker(\$.extend({}, {$options}));");
// $view->registerJs("$('#{$containerID}').datepicker($.extend({}, $.datepicker.regional['{$language}'], $options));");
} else {
$this->registerClientOptions('datepicker', $containerID);
}
// $this->registerClientEvents('datepicker', $containerID);
}
示例6: init
public function init()
{
parent::init();
if (!$this->_localFormatPhp) {
$this->_localFormatPhp = FormatConverter::convertDateIcuToPhp($this->localFormat[1], $this->localFormat[0]);
}
}
示例7: run
/**
* Renders the widget.
*/
public function run()
{
$picker = $this->timeOnly ? 'timepicker' : 'datetimepicker';
echo $this->renderWidget() . "\n";
$containerID = $this->inline ? $this->containerOptions['id'] : $this->options['id'];
$language = $this->language ? $this->language : Yii::$app->language;
if (strncmp($this->dateFormat, 'php:', 4) === 0) {
$this->clientOptions['dateFormat'] = FormatConverter::convertDatePhpToJui(substr($this->dateFormat, 4), 'date', $language);
} else {
$this->clientOptions['dateFormat'] = FormatConverter::convertDateIcuToJui($this->dateFormat, 'date', $language);
}
if ($this->timeFormat) {
$this->clientOptions['timeFormat'] = $this->timeFormat;
}
if ($language != 'en-US' && $language != 'en') {
$view = $this->getView();
$bundle = DateTimePickerLanguageAsset::register($view);
if ($bundle->autoGenerate) {
$fallbackLanguage = substr($language, 0, 2);
if ($fallbackLanguage !== $language && !file_exists(Yii::getAlias($bundle->sourcePath . "/dist/i18n/jquery-ui-timepicker-{$language}.js"))) {
$language = $fallbackLanguage;
}
$view->registerJsFile($bundle->baseUrl . "/dist/i18n/jquery-ui-timepicker-{$language}.js", ['depends' => [DateTimePickerAsset::className()]]);
}
$options = Json::encode($this->clientOptions);
$view->registerJs("\$('#{$containerID}').{$picker}(\$.extend({}, \$.timepicker.regional['{$language}'], {$options}));");
} else {
$this->registerClientOptions($picker, $containerID);
}
$this->registerClientEvents($picker, $containerID);
DateTimePickerAsset::register($this->getView());
}
示例8: setValue
/**
* @param string $value
*/
public function setValue($value)
{
$this->_value = $value;
$normalizedFormat = DateTimeBehavior::normalizeIcuFormat($this->targetFormat, $this->behavior->formatter);
$phpFormat = FormatConverter::convertDateIcuToPhp($normalizedFormat[1], $normalizedFormat[0], \Yii::$app->language);
$dateTime = date_create_from_format($phpFormat, $value);
$this->behavior->owner->{$this->originalAttribute} = $this->behavior->formatter->format($dateTime, $this->originalFormat);
}
示例9: convertDateFormat
/**
* Converting the date format from PHP DateTime (or ICU format) to Moment.js DateTime format.
* @param string $format the PHP date format string
* @return string
* @see http://php.net/manual/en/function.date.php
* @see http://momentjs.com/docs/#/parsing/string-format/
*/
protected function convertDateFormat($format)
{
if (strncmp($format, 'php:', 4) === 0) {
$format = substr($format, 4);
} else {
$format = FormatConverter::convertDateIcuToPhp($format);
}
return strtr($format, ['s' => 'ss', 'i' => 'mm', 'g' => 'h', 'h' => 'hh', 'G' => 'H', 'H' => 'HH', 'w' => 'e', 'W' => 'E', 'j' => 'D', 'd' => 'DD', 'D' => 'DDD', 'l' => 'DDDD', 'n' => 'M', 'm' => 'MM', 'M' => 'MMM', 'F' => 'MMMM', 'y' => 'YY', 'Y' => 'YYYY', 'U' => 'X']);
}
示例10: jui
/**
* @param DateTimeAttribute $attribute
* @param string $datePickerClass
* @return array
*/
public static function jui($attribute, $datePickerClass = 'yii\\jui\\DatePicker')
{
$format = $attribute->localFormat;
switch ($datePickerClass) {
case 'yii\\jui\\DatePicker':
return ['language' => \Yii::$app->language, 'clientOptions' => ['dateFormat' => FormatConverter::convertDateIcuToJui($format[1], $format[0])]];
default:
return [];
}
}
示例11: init
public function init()
{
parent::init();
if ($this->timeZoneConvert === null) {
$this->timeZoneConvert = !($this->originalFormat != 'U' && $this->localFormat[0] == 'date');
}
if (!$this->_localFormatPhp) {
$this->_localFormatPhp = FormatConverter::convertDateIcuToPhp($this->localFormat[1], $this->localFormat[0]);
}
}
示例12: date2timestamp
/**
* convert current yii date format to timestamp
* @param string $date current date in Yii date format
* @return bool|int
*/
public static function date2timestamp($date)
{
$format = Yii::$app->formatter->dateFormat;
if (strncmp($format, 'php:', 4) === 0) {
$format = substr($format, 4);
} else {
$format = FormatConverter::convertDateIcuToPhp($format);
}
$d = DateTime::createFromFormat($format, $date);
if ($d) {
return $d->getTimestamp();
}
return false;
}
示例13: init
/**
* @throws \yii\base\InvalidConfigException
*/
public function init()
{
parent::init();
Html::addCssClass($this->options, ['progressive-datepicker', 'form-control']);
if (!$this->dateFormat) {
$this->dateFormat = Yii::$app->formatter->dateFormat;
}
if (strncmp($this->dateFormat, 'php:', 4) === 0) {
$this->clientOptions['dateFormat'] = FormatConverter::convertDatePhpToJui(substr($this->dateFormat, 4));
} else {
$this->clientOptions['dateFormat'] = FormatConverter::convertDateIcuToJui($this->dateFormat);
}
$this->options = array_merge($this->options, ['type' => 'date', 'value' => $this->getDate(), 'formattedValue' => $this->getFormattedDate()]);
}
示例14: registerScript
public function registerScript()
{
$language = $this->language ? $this->language : Yii::$app->language;
if (strncmp($this->saveDateFormat, 'php:', 4) === 0) {
$saveDateFormatJs = FormatConverter::convertDatePhpToJui(substr($this->saveDateFormat, 4));
} else {
$saveDateFormatJs = FormatConverter::convertDateIcuToJui($this->saveDateFormat, 'date', $language);
}
$this->saveDateFormatJs = $saveDateFormatJs;
$containerID = $this->inline ? $this->containerOptions['id'] : $this->options['id'];
$hiddenInputID = $this->options['savedValueInputID'];
$script = "\r\n \$('#{$containerID}').change(function() {\r\n var savedValue = \$.datepicker.formatDate('{$saveDateFormatJs}', \$(this).datepicker('getDate'));\r\n \$('#{$hiddenInputID}').val(savedValue).trigger('change');\r\n });\r\n ";
$view = $this->getView();
$view->registerJs($script);
}
示例15: evaluateAttributes
public function evaluateAttributes($event)
{
if (strncmp($this->sourceFormat, 'php:', 4) === 0) {
$sourceFormat = FormatConverter::convertDatePhpToIcu(substr($this->sourceFormat, 4));
} else {
$sourceFormat = $this->sourceFormat;
}
$formatter = new \IntlDateFormatter(Yii::$app->formatter->locale, null, null, Yii::$app->formatter->timeZone, Yii::$app->formatter->calendar, $sourceFormat);
foreach ($this->attributes as $attribute) {
$value = $this->owner->{$attribute};
if (empty($value)) {
continue;
}
$this->owner->{$attribute} = Yii::$app->formatter->asDateTime($formatter->parse($value), $this->destinationFormat);
}
}