格式化时间小部件ActiveForm yii2

时间:2014-11-21 19:35:25

标签: php time yii2

下午好,我需要在widget活动表单中格式化时间类型字段的输入,我的表单应该是没有秒的短时间,字段是在类型time的表中定义的,有什么方法可以告诉它对于小部件活动或模型,该字段的格式为" php:h:i"。

非常感谢,

的Wilmer。

<?= $form->field($model, 'turnos008')->textInput(['class' => 'form-control col-md-2 inicio']) ?>

2 个答案:

答案 0 :(得分:0)

在渲染字段之前(例如在控制器中),您可以执行以下操作:

我认为时间是12:20:21 AM

//for example: output is : 12:20 AM
$model->turnos008=Yii::$app->formatter->asTime($model->turnos008, 'short');

//for example: output is : 12:20:21 AM
$model->turnos008=Yii::$app->formatter->asTime($model->turnos008, 'medium');

//for example: output is : 12:20:21 AM GMT
$model->turnos008=Yii::$app->formatter->asTime($model->turnos008, 'long');

//for example: output is : 12:20
$model->turnos008=Yii::$app->formatter->asTime($model->turnos008, 'php:h:i');

您可以查看http://www.yiiframework.com/doc-2.0/yii-i18n-formatter.html#asTime()-detail上的Yii2官方文档

答案 1 :(得分:0)

以以下格式显示:格式"php: h: i"

<?= $form->field($model,'fieldTime')->textInput(['value' => date('h:i', $model->fieldTime)]) ?>

<?php if (extension_loaded('intl')): ?>
   <?= $form->field($model,'fieldTime')->textInput(['value' => \Yii::t('user', '{0, date, hh:mm}', [$model->fieldTime])]) ?>
<?php endif ?>

<?= $form->field($model,'fieldTime',['inputOptions' => ['value' => \Yii::$app->formatter->asTime($model->fieldTime, 'php:h:i')]]) ?>

<?= $form->field($model,'fieldTime')->textInput(['value' => \Yii::$app->formatter->asDate($model->fieldTime, 'php:h:i')]) ?>

注意:将“ fieldTime”更改为您的字段名称

原始验证Link

[
    [['from_date', 'to_date'], 'date'],
    [['from_datetime', 'to_datetime'], 'datetime'],
    [['some_time'], 'time'],
]