RSS

[Manual] Transformacion de fechas MySql a PHP

Lun, Nov 19, 2007

Manuales, Mysql, Php, Programacion, Tips

El otro dia en la programacion de una pagina web, tuve un problema, con el uso de fechas en Php y MySQL me tarde en resolverlo por eso mejor pongo un post que sin duda les ayudara a mas de uno , ya que yo practicamente nunca encontre una solucion eficaz.

La cosa esta asi, supongamos que tenemos, una base de datos MySQL, con una tabla en la cual, tenemos el campo fecha, este campo fecha es de tipo “date”.

En el campo date tenemos la siguiente fecha “2007-11-19″, y queremos que al llamarla desde Php nos muestre la fecha asi 19 de noviembre del 2007″.

Muchos pensaran en el uso de un array con los meses, pero nos es lo mas optimo, el codigo es simple imaginemos nuestro query con el siguiente ejemplo

[source:php]
$sql=’select * from Registros’;
$q=mysql_query($sql,$conexion_mysql);
while($fila=mysql_fetch_assoc($q))
{
echo ’se registro el dia’. $fila['fecha'] .’
‘;
}
[/source]

esto nos mostraria lo siguiente

se registro el dia 2007-11-19
se registro el dia 2007-11-18
se registro el dia 2007-11-18
se registro el dia 2007-11-17
se registro el dia 2007-10-10
Etc…

Como vieron, no es lo mas optimo para mostrar fechas aqui que hagamoslo mas entendible para el usuario.

[source:php]
$sql=’select * from Registros’;
$q=mysql_query($sql,$conexion_mysql);
while($fila=mysql_fetch_assoc($q))
{
$Fecha_Mysql=$fila['fecha']
$Fecha = @strtotime($Fecha_Mysql); //el arroba es para evitar que nos muestre errores en caso de que la variable este vacia
$FECHA=strftime(”%d de %B del %Y”,$Fecha);
echo ’se registro el dia’. $FECHA .’
‘;
}
[/source]

De est foma veremos de resultados lo siguiente

se registro el dia 19 de noviembre del 2007
se registro el dia 18 de noviembre del 2007
se registro el dia 18 de noviembre del 2007
se registro el dia 17 de noviembre del 2007
se registro el dia 10 de octubre del 2007
Etc….

Y listo, como vieron fue simple y sencillo

¿Dudas, Preguntas y Demas ? en los comentarios…

, , , ,

This post was written by:

Ajaxman - who has written 571 posts on Ajaxman.


Contact the author

6 Comments For This Post

  1. Jose Almarza Says:

    y como puedo hacer lo invertido para insertarlo en la base de datos
    !GRACIAS

  2. Jose Almarza Says:

    Hola, y como puedo hacer lo invertido para insertarlo en la base de datos, por favor respondeme a mi correo…
    jgamhott@hotmail.com

    !GRACIAS!

  3. fuel sirpa Says:

    Disculpen, he probado el codigo que publicaron, pues esta bien, el problemita ahora es que me apare en ingles asi: 30 de november de 1999, como lo hago para que este en espa;ol?

  4. diego Says:

    amigo….una pregunta, sabes de alguna funcion ya programada en la cual yo ingrese una un fecha en php y me diga q dia de la semana es. Es decir que yo le ingrese 2008-09-03 y me diga “miercoles 3 de Septiembre de 2008″ o simplemente “miercoles 3″….lo importante que me diga el nombre del dia de la semana.

    saludos

  5. diego Says:

    correccion….ingrese la fecha en formato sql :P.
    saludos

  6. José Says:

    Se puede pasar al idioma castellano anteponiendo un setLocale al código. O sea:

    setlocale(LC_ALL, ‘es_ES’);

    $Fecha_Mysql = $fila['fecha'];
    $Fecha = @strtotime($Fecha_Mysql);
    $FECHA = strftime(”%d de %B del %Y”,$Fecha);

    Cuando probé ese código de forma local, no me funcionó. Pero sí funcionó al subirlo al servidor. Para que funcione localmente lo cambié al formato Windows, o sea:

    setlocale(LC_ALL, ‘esp_ESP’);

    Saludos.

Leave a Reply