Maison > Questions et réponses > le corps du texte
<?= $form->field($model, 'time')->textInput() ?>
Question 1 :
Mon heure est un horodatage dans la base de données. Ce que je veux afficher maintenant, c'est l'heure. Comment la gérer ?
Question 2 :
Je remplis une chaîne telle que 2017-05-13 dans ce formulaire de date. Quelle méthode peut-on écrire dans le modèle pour la convertir automatiquement en horodatage ?
怪我咯2017-05-16 12:59:56
class XXX extends \yii\db\ActiveRecord
{
public function rules()
{
return [
...other rules...
['time', function($attr, $params) {
if ($this->hasErrors()) return false;
$datetime = $this->{$attr};
$time = strtotime($datetime);
// 验证时间格式是否正确
if ($time === false) {
$this->addError($attr, '时间格式错误.');
return false;
}
// 将转换为时间戳后的时间赋值给time属性
$this->{$attr} = $time;
return true;
}],
];
}
...others...
/**
* 从数据库中 find() 数据后将 time 格式化。
*/
public function afterFind()
{
parent::afterFind();
$this->time = date('Y-m-d', $this->time);
}