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…


Marzo 25th, 2008 at 10:20 pm
y como puedo hacer lo invertido para insertarlo en la base de datos
!GRACIAS
Marzo 25th, 2008 at 10:22 pm
Hola, y como puedo hacer lo invertido para insertarlo en la base de datos, por favor respondeme a mi correo…
jgamhott@hotmail.com
!GRACIAS!
Mayo 8th, 2008 at 9:05 am
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?
Septiembre 2nd, 2008 at 10:39 pm
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
Septiembre 2nd, 2008 at 10:40 pm
correccion….ingrese la fecha en formato sql :P.
saludos
Octubre 10th, 2008 at 6:59 am
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.