Luis Lobo Borobia
unread,May 1, 2010, 1:29:03 AM5/1/10Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Sign in to report message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to yiiframework-spanish
Gente,
Tengo algunas dudas sobre como manejar las fechas. Finalmente logro
que en la vista se tome la fecha en un formato, y en el controlador se
grabe como corresponde, pero no estoy seguro si la forma en que lo
estoy haciendo es la mejor.
El tema es el siguiente:
Estoy usando MySQL (tengo poca experiencia en MySQL).
Por prueba y error validé que efectivamente, como la mayoría de los
motores de bases de datos, al insertar una fecha, usa el formato ISO:
yyyy-MM-dd.
Ahora, en mi modelo, tengo un atributo fecha definido asi:
array('DateOfBirth', 'type', 'type'=>'date','dateFormat'=>'dd/MM/
yyyy','message' => '¡{attribute} no es una fecha válida!',),
Y además, en mi vista, tengo definido:
$this->widget('zii.widgets.jui.CJuiDatePicker', array(
'name' => 'FCUserProfile[DateOfBirth]',
// additional javascript options for the date
picker plugin
'options' => array(
'showAnim' => 'fold',
'changeMonth' => 'true',
'dateFormat' => 'dd/mm/yy',
'changeYear' => 'true',
'defaultDate' => '-13y',
'maxDate' => '-13y',
'prevText' => 'Ant',
'nextText' => 'Prox',
),
'model' => $userProfileModel,
'attribute' => 'DateOfBirth',
'htmlOptions' => array(
'style' => 'height:20px;'
),
));
En mi controlador, despues de validar, y antes de guardar el AR, hago
esto:
$timestamp=CDateTimeParser::parse($userProfileModel-
>DateOfBirth,'dd/MM/yyyy');
$dtf = new CDateFormatter(yii::app()->getLocale());
$formattedTimeStamp = $dtf->format('yyyy-MM-dd',
$timestamp);
$userProfileModel->DateOfBirth = $formattedTimeStamp
Mi duda es:
1) Consideran correcto hacer esto en el action?
2) Hay alguna manera de hace esto automático? es decir, indicarle de
alguna forma al modelo que su formato de vista es uno y el formato de
persistencia es otro?
3) Es mejor hacer algo en el modelo? COmo seria???
AH, de paso, también soy novato en PHP...
Gracias!