Busco funcion para mostar fechas ...

Hola amigos foreros.

Busco algun alma caritativa que quiera pegar aqui alguna libreria de conversion de fechas.

en el ambiente latino usamos dd/mm/yyyy, pero en otros lasdos se les ha dado por mezclar todo … jaja

Si alguien tiene alguna funcion, o me comentan en que lugar debo crear la funcion paar que sea accedidad desde toda la aplicacion.

Se agradece.

Nico

Pues es sencillo, El framework te da muchas utilidades para hacer esto. Figurare un ejemplo para ti.

Digamos que tu base de datos es MYSQL y por lo tanto recibe el valor "date" en el siguiente formato

yyyy-mm-dd

Pero desde tu date Picker lo tienes configurado de la siguiente manera

dd-mm-yyyy

Lo primero que tendrias que hacer es formatear la fecha que te tira el date picker, para que sea acceptable por la base de datos. para ello usaras el metodo parse() de la clase CDateTimeParser

Luego le daremos el formato adecuado con el metodo format() de la clase CDateFormatter()

Ejemplo





$model = MiModelo();

$datepicker = "01-02-2012";


//Tranformas la fecha a formato unix

$unixtime = CDateTimeParser::parse($datepicker,"dd-MM-yyyy");


//Ahora le damos formato acceptable para nuestra base de datos

$finaldate = Yii::app()->dateformatter->format("yyyy-MM-dd",$unixtime);


$model->date = $finaldate;


$model->save();



Ya con eso seria mas que suficiente, lo que haces es transformar a tiempo unix la fecha del datepicker con el metodo CDateTimeParser::parse(), lo haces asi por que el dateparser te da la opcion de interpretar cualquier estilo de fecha enviado por el usuario, en mi caso es de el estilo dd-MM-yyyy, pero pudo haber sido tambien dd/MM/YYYY, o cualquier otro.

Posterior a eso usamos el metodo CDateFormatter::format(), no podemos usarlo de forma estatica por que necesita del la clase CLocale (que contiene la fecha local de la aplicacion) pero si lo usamos como componente usando el singleto Yii::app() entonces dicho componente si nos da el metodo format() ya con una instancia de CLocale().Mira la documentacion para mas información.

Saludos