Uso de Fechas

26 views
Skip to first unread message

Luis Lobo Borobia

unread,
May 1, 2010, 1:29:03 AM5/1/10
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!

Luis Lobo Borobia

unread,
May 1, 2010, 2:03:34 AM5/1/10
to yiiframework-spanish
Bueno, me autorespondo.

Acabo de encontrar la extensión de automatización de formato de
fechas.
Excelente!

http://www.yiiframework.com/extension/i18n-datetime-behavior

Sebastián Thierer

unread,
May 1, 2010, 2:54:20 PM5/1/10
to yii-s...@googlegroups.com
Nosotros lo que hacemos cuando utilizamos fechas creamos una variable en la clase y de esa forma podemos ponerlo en el modelo y en el before save y el after find lo grabo en las variables que cree.

Saludos,


2010/5/1 Luis Lobo Borobia <luis...@gmail.com>
Reply all
Reply to author
Forward
0 new messages