Foros del Web » Programando para Internet » PHP »

Cómo convertir formato de fecha en mysql

Estas en el tema de Cómo convertir formato de fecha en mysql en el foro de PHP en Foros del Web. Buenas trabajo con php y mysql. Tengo un campo Fecha que mediante un javascript despliega un calendario donde el usuario selecciona la fecha. el problema ...
  #1 (permalink)  
Antiguo 29/07/2011, 19:16
 
Fecha de Ingreso: julio-2010
Mensajes: 75
Antigüedad: 13 años, 8 meses
Puntos: 2
Cómo convertir formato de fecha en mysql

Buenas trabajo con php y mysql. Tengo un campo Fecha que mediante un javascript despliega un calendario donde el usuario selecciona la fecha. el problema es el formato, ya que lo almacena Año Mes Día y necesito es formato Día Mes Año. El javascript puedo modificarlo para que tenga este formato pero al enviar el formulario se inserta en ese campo de mi tabla en mi base de datos el valor 0000-00-00. Cómo puedo hacer para guardar una fecha en formato DIA MES AÑO en mi tabla, es decir, convertirla al formato mysql y que cuando se vaya a consultar la fecha almacenada me la devuelva en formato DIAS MES AÑO.
  #2 (permalink)  
Antiguo 29/07/2011, 19:19
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Cómo convertir formato de fecha en mysql

eso lo puedes hacer con mysql la funcion, date_format(), busca la sintaxis es bastante fácil
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 29/07/2011, 20:11
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Cómo convertir formato de fecha en mysql

puedes hacer esto pero no es muy funcional

Código PHP:
Ver original
  1. list ($dia, $mes, $anio) = explode ('-' ,$_POST['tu_campo_fecha']);
  2. $fecha_para_base = $anio.'/'.$mes.'/'.$dia;
  3.  
  4. // toma en cuenta que '-'  es en base al formato de tu fecha ejemplo 01-05-2011

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #4 (permalink)  
Antiguo 30/07/2011, 07:44
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Cómo convertir formato de fecha en mysql

Cita:
Iniciado por Jibril Ver Mensaje
Buenas trabajo con php y mysql. Tengo un campo Fecha que mediante un javascript despliega un calendario donde el usuario selecciona la fecha. el problema es el formato, ya que lo almacena Año Mes Día y necesito es formato Día Mes Año. El javascript puedo modificarlo para que tenga este formato pero al enviar el formulario se inserta en ese campo de mi tabla en mi base de datos el valor 0000-00-00. Cómo puedo hacer para guardar una fecha en formato DIA MES AÑO en mi tabla, es decir, convertirla al formato mysql y que cuando se vaya a consultar la fecha almacenada me la devuelva en formato DIAS MES AÑO.
Las fechas deben guardarse en las tablas en el formato estandar, siempre. Guardarlas como dd/mm/aaaa implica que se guarden como cadenas de texto y no como fechas, lo que luego lo único que hacen es traerte problemas en las consultas, sea al ordenarlas cronológicamente, o al tener que buscar ciertas fechas, ya que el SQL las interpretará como cadenas y generará errores de interpretación.
Nunca, jamás guardes una fecha o una hora como cadenas de texto. Es un error que te dará dolores de cabeza tarde o temprano y te obligará a migrar de nuevo el formato para resolverlo.
Si lo que quieres es obtener la fecha luego en un formato determinado, eso se hace en la misma consulta a la base, como ya te han dicho. Simplemente se usa la función de DATE_FORMAT() de MySQL:
Código MySQL:
Ver original
  1. SELECT DATE_FORMAT(campoFecha, '%d/%m/%Y') fecha
  2. FROM tabla;

Manual de Referencia de MySQL::12.5. Funciones de Fecha y Hora

Cada cosa tiene su forma de hacerse mejor. Algunas veces es en PHP, otras en SQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 30/07/2011 a las 07:49
  #5 (permalink)  
Antiguo 31/07/2011, 02:54
 
Fecha de Ingreso: septiembre-2010
Ubicación: Corrientes - Argentina
Mensajes: 37
Antigüedad: 13 años, 7 meses
Puntos: 2
De acuerdo Respuesta: Cómo convertir formato de fecha en mysql

Esta funcion tengo armada para mostrar la fecha recibida de una base de datos, espero te sirva:

Código PHP:
//empieza funcion fecha
function fechador($fecha){

$separadoexplode("-",$fecha); 

$ano=$separado[0];
$dia=$separado[2];

if(
$separado[1]=='01'){
$mes='Ene';
}elseif(
$separado[1]=='02'){
$mes='Feb';
}elseif(
$separado[1]=='03'){
$mes='Mar';
}elseif(
$separado[1]=='04'){
$mes='Abr';
}elseif(
$separado[1]=='05'){
$mes='May';
}elseif(
$separado[1]=='06'){
$mes='Jun';
}elseif(
$separado[1]=='07'){
$mes='Jul';
}elseif(
$separado[1]=='08'){
$mes='Ago';
}elseif(
$separado[1]=='09'){
$mes='Sep';
}elseif(
$separado[1]=='10'){
$mes='Oct';
}elseif(
$separado[1]=='11'){
$mes='Nov';
}elseif(
$separado[1]=='12'){
$mes='Dic';
}

$fechafinal=$dia.'-'.$mes.'-'.$ano;

return 
$fechafinal;
}
?> 
para usarla solo debes despues de incluirla en el archivo aplicarla a la fecha que quieras ejemplo:

Código PHP:
$fechaNota="2011-07-03";
echo 
fechador($fechaNota); // te devolveria en este caso 03 de Jul de 2011 
Si quieres el mes en numeros elimina todo los if del medio que comparan el $separado[1] y incluye una linea asi en su lugar

Código PHP:
$mes=$separado[1]; 
Espero te sirva.
__________________
Si esta vida te da la espalda, siempre puede tocarle el c...

Etiquetas: fecha, formato, mysql, tabla, formulario, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:02.