我开始使用Yii学习PHP,我有一个很大的问题,也许你可以帮助我.
我正在使用表单来创建用户.我想将我在表单中引入的用户数据存储到DB(MySQL)中,但我还必须将日期和时间存储在DB的datetime字段中.我看到像CJUIDATEPICKER这样的扩展来选择日期,但我不知道选择日期时间的任何扩展.我认为更好的方法是在创建新用户时自动存储日期时间.现在我在表单中有一个文本框,我必须以yyyy-mmmm-dddd hh:mm:ss格式引入日期时间,但我认为它没用.
请有人帮助我并向我解释当我在数据库中创建注册时如何存储日期时间?
非常感谢你.
编辑:
现在我使用“$model-> reg_date = new CDbExpression(‘Now()’);”在actionCreate()控制器内部,它运行良好,但我认为在你编写任何东西之前在用户创建表单的字段中显示这个日期时间更好,并在你点击提交时存储表单的所有字段.我试着去做,但你可以想象这个字段只显示“Now()”
<div class="row">
<?PHP $model->reg_date=new CDbExpression('Now()');?>
<?PHP echo $form->labelEx($model,'reg_date'); ?>
<?PHP echo $form->textField($model,'reg_date'); ?>
<?PHP echo $form->error($model,'reg_date'); ?>
</div>
有人可以帮帮我吗?
再次感谢你!
解决方法:
如果您选择在创建新用户时自动存储日期时间,我将使用CDbExpression:
$model->created = new CDbExpression('Now()'); // "YYYY-MM-DD HH:MM:SS"
UNIX_TIMESTAMP(Now())用于unix时间戳.值得一提的是,这些函数是特定于MysqL的.
我还想指出CJuiDatePicker是与Yii捆绑在一起的小部件.对不起,挑剔.
使用PHP的日期函数而不是MysqL的Now()更新了答案:
// UserController.PHP
public function actionCreate()
{
$model=new User;
$model->created = date("Y-m-d H:i"); // Added this.
if(isset($_POST['User']))
{
$model->attributes=$_POST['User'];
if($model->save())
{
$this->redirect(array('view','id'=>$model->id));
}
}
$this->render('create',array(
'model'=>$model,
));
}
// _form.PHP inside your Active Form
echo $form->labelEx($model,'created'); // display it anyway you'd like. A label perhaps?
echo $form->hiddenField($model, 'created'); // Send back value to the controller on submit
那应该是它!
如果你使用bootstrap,还有一些值得一提的东西.不要在表单中首先放置隐藏字段,因为bootstraps first-child css-selectors会弄乱上边距.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。