Las fechas son el típico engorro que siempre nos molesta a la hora de programar, sobre todo porque según la base de datos que tengamos y la procedencia de la misma podemos tener distintos formatos de fecha que manejar.

La mayoría de utilizamos PHP con MySql que tienen formatos diferentes al que usamos en este país. Así pues es muy interesante conocer una forma de cambiar de un formato de fecha a otro de una forma cómoda y fácil.

El formato que utilizamos aquí es “dd/mm/aaaa” y el MySql utiliza el formato “aaaa-mm-dd”. Para poder realizar los cambios entre ambos formatos es recomendable crear un par de funciones, una de la fecha de MySql a castellano y otra para la operación contraria.

<?

////////////////////////////////////////////////////

//Convierte fecha de mysql a normal

////////////////////////////////////////////////////

 function  cambiaf_a_normal ( $fecha ){

 ereg (  "([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})" ,  $fecha ,  $mifecha );

 $fechafinal = $mifecha [ 3 ]. "/" . $mifecha [ 2 ]. "/" . $mifecha [ 1 ];

 return  $fechafinal ;

 }
////////////////////////////////////////////////////

//Convierte fecha de normal a mysql

////////////////////////////////////////////////////
function  cambiaf_ a_mysql ( $fecha ){

 ereg (  "([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})" ,  $fecha ,  $mifecha );

 $fechafinal = $mifecha [ 3 ]. "-" . $mifecha [ 2 ]. "-" . $mifecha [ 1 ];
return  $fechafinal ;

 }
?>

Ahora debemos saber utilizarlas.

Mostrar en la página una fecha en castellano

En este caso la fecha ha sido sacada de la base de datos a través de una variable llamada $fila->fecha y la mostramos en un formulario.

<input type="text" name="fecha" value=" <? echo  cambiaf_a_normal ( $fila -> fecha ); ?> ">

Guardar en la base de datos una fecha en formato MySQL.

Suponemos que tenemos la fecha en una variable llamada $fecha, que está en castellano y que recogemos de un formulario.

En una consulta para añadir el registro a la base de datos sería:

<?

 mysql_query  ( "insert into documento (titulo_documento, fecha_documento, cuerpo_documento)

 values ('$titulo_documento', '"  .  cambiaf_a_mysql ( $fecha ) .  "', '$cuerpo_documento')" );

 ?>

Ya tenemos la función escrita para utilizarla donde queramos.


Vota este artículo:
1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (No Ratings Yet)
Loading ... Loading ...

Posts anterior y posterior:


Posts Relacionados: