Foros del Web » Programando para Internet » PHP »

Fecha mysql yy-mm-dd

Estas en el tema de Fecha mysql yy-mm-dd en el foro de PHP en Foros del Web. Hola a todos, llevo navegando días por la web y no encuentro como solucionar el problema de que capturo la fecha actual mediante NOW() en ...
  #1 (permalink)  
Antiguo 23/09/2013, 05:02
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 9 meses
Puntos: 0
Pregunta Fecha mysql yy-mm-dd

Hola a todos, llevo navegando días por la web y no encuentro como solucionar el problema de que capturo la fecha actual mediante NOW() en una celda de mi base de datos mysql y me la captura con el fomrato yy-mm-dd y lo que quiero es que al mostrarla en mi pagina web me aparezca como dia-mes-año, e leido acerca de hacer lo siguiente:

SELECT DATE_FORMAT(`fecha`,'%d-%m-%Y') FROM `my_tabla`;

pero no se bien donde colocar esta línea de código...

¿Tendría que ir esa linea que me recomiendan usar dentro de la que yo tengo?
es decir esta:

$rst_form=mysql_query("SELECT * FROM form WHERE seccion = 'Moda'");


lo e probado de muchas maneras y no me funciona, me las sigue mostrando tal y como se han guardado en la base de datos...ayuda porfavor!!! GRACIAS
  #2 (permalink)  
Antiguo 23/09/2013, 06:04
Mariuch
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fecha mysql yy-mm-dd

Hola! Simplemente incorporalo después del select. Te recomiendo ponerle además un alias para que puedas trabajar más comodamente con ella. Si necesitás traer otras columnas, simplemente las podés añadir separando por una coma luego de FECHA.

Código:
$rst_form=mysql_query("SELECT DATE_FORMAT(`fecha`,'%d-%m-%Y') AS FECHA FROM form WHERE seccion = 'Moda'");
Saludos!
  #3 (permalink)  
Antiguo 25/09/2013, 02:35
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 9 meses
Puntos: 0
Exclamación Respuesta: Fecha mysql yy-mm-dd

Muchas gracias por responder!! aunque sigue sin funcionarme...al poner ese codigo no me muestra los datos de la base de datos...

Yo creo que el código que me an "recomendado" no es válido porque no encuentro la forma de hacerlo funcionar..tal vez tenga algun error

¿Sabeis si puedo utilizar otro código diferente a ese para poder mostrar las fehcas en día-mes-año?

Gracias a todos!!
  #4 (permalink)  
Antiguo 25/09/2013, 03:08
 
Fecha de Ingreso: septiembre-2013
Ubicación: Madrid
Mensajes: 10
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: Fecha mysql yy-mm-dd

Intenta con esto:

$mi_fecha = date("d-m-Y", strtotime($fecha));
print $mi_fecha;

Debería imprimirte 25-09-2013
  #5 (permalink)  
Antiguo 25/09/2013, 06:45
Mariuch
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fecha mysql yy-mm-dd

Es válido parsear las fechas con PHP pero no tendrías por qué experimentar problemas con la función DATE_FORMAT. Podrías indicar si estás recibiendo algún tipo de error? Al menos para tener de referencia. El campo para las fechas en tu base de datos es de tipo DATE o DATETIME verdad?
  #6 (permalink)  
Antiguo 27/09/2013, 04:12
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 9 meses
Puntos: 0
Exclamación Respuesta: Fecha mysql yy-mm-dd

Bien, os explico mas detalladamente que es lo que tengo:

1º tengo un formulario para que los visitantes de la web pongan un anuncio sobre un articulo o producto que quieran vender.

2ºtras unas lineas de codigo capturo la fecha en la que se a publicado el articulo con la variable NOW() y las guardo en un campo DATE en mi base de datos llamado fecha.

3ºLos anuncios se muestran en una tabla que se repite mientras existan anuncios, en esta tabla le digo que muestre el contenido de fecha, y me muestra el contenido en el formato yy-mm-dd.

--->código que muestra el anuncio:


while ($fila=mysql_fetch_array($rst_form))
{
?>

<tr>
<td><img src=<?php echo $fila[7];?> width="180"></td>
<td style="font-size: 14px; text-align: justify; vertical-align: middle;"><?php echo $fila[5];?></td>
<td style="font-size: 14px; text-align: center; vertical-align: middle;"><?php echo $fila[6];?></td>
<td style="font-size: 14px; text-align: center; vertical-align: middle;"><?php echo $fila[12];?></td>
<td style="font-size: 14px; text-align: center; vertical-align: middle;"><?php echo $fila[2];?></td>

[...]


----> código de mi select:


include("conexion.php");
$rst_form=mysql_query("SELECT * FROM form WHERE seccion = 'Moda'");


$num_rows=mysql_num_rows($rst_form);

if ($num_rows==0)

{

echo "No hay artículos disponibles para mostrar";
exit();

}

AHORA BIEN: si pongo el codigo que Mariuch me a recomendado:


$rst_form=mysql_query("SELECT DATE_FORMAT(`fecha`,'%d-%m-%Y') AS FECHA FROM form WHERE seccion = 'Moda'");

No me aparecen ni los anuncios ni las fechas ni las imagenes ni nada de nada...no me da ningun error, simplemente no me muestra nada...

Gracias por vuestra ayuda compañeros!!!
  #7 (permalink)  
Antiguo 27/09/2013, 05:00
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 9 meses
Puntos: 0
Pregunta Respuesta: Fecha mysql yy-mm-dd

Intentando e intentado lo conseguí:

Gracias a jolucoes, que tras unas pequeñas modificaciones de su código me a funcionado:


en la fila donde se repiten mientras haya anuncios y justo en la de la fecha e añadido lo siguiente:

<td style="font-size: 14px; text-align: center; vertical-align: middle;"><?php echo $fila[12]= date("d-m-Y", strtotime($fila[12]));;?></td>

y por fin parece que va bien!!! Muchas gracias a todos por vuestro interés!!

Ahora me surge una nueva duda: ¿Se podría poner que muestre el dia con numero, el mes con letras(en español) y el año en numeros?

Ejemplo: 27-Septiembre-2013

Es nada mas que por una estética mas limpia....
  #8 (permalink)  
Antiguo 27/09/2013, 09:22
Mariuch
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fecha mysql yy-mm-dd

Es muy raro que no te funcione el DATE_FORMAT. Acá te paso una forma un tanto aparatosa de lograr lo que querés ya que usando solamente date traés la fecha actual y no la de la publicación de tu base de datos.

Código PHP:
<?php
    $rst_form
mysql_query("SELECT fecha FROM form WHERE seccion = 'Moda'");
    
$datos mysql_fetch_assoc$rst_form );
    
$datos date("d-F-Y"strtotime$datos'fecha' ] ) );

        
// El único problema es que trae el nombre del mes en inglés. Realmente no sé si existe una función que lo traiga directamente en español. Si no te sugiero que hagas una función que reemplace los nombres en inglés por nombres en español con str_replace por ejemplo

    
echo $datos;
?>
Para más información de la función date(); podés consultar acá.

Saludos!

Última edición por Mariuch; 27/09/2013 a las 09:48 Razón: Agregar información
  #9 (permalink)  
Antiguo 27/09/2013, 10:46
 
Fecha de Ingreso: septiembre-2013
Ubicación: Valencia
Mensajes: 1
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Fecha mysql yy-mm-dd

Prueba con esta función


function DateToQuotedMySQLDate($Fecha)

{
$Parte1 = substr($Fecha, 0, 10);
$Parte2 = substr($Fecha, 10, 18);

if ($Parte1<>""){
$trozos=explode("/",$Parte1,3);
return $trozos[2]."-".$trozos[1]."-".$trozos[0].$Parte2; }
else
{return "NULL";}
}

function MySQLDateToDateHORA($MySQLFecha)
{
if (($MySQLFecha == "") or ($MySQLFecha == "0000-00-00") )
{return "";}
else
{return date("H:i",strtotime($MySQLFecha));}
}

function MySQLDateToDateDIA($MySQLFecha)
{
if (($MySQLFecha == "") or ($MySQLFecha == "0000-00-00") )
{return "";}
else
{return date("d/m/Y",strtotime($MySQLFecha));}
}
  #10 (permalink)  
Antiguo 28/09/2013, 04:20
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Fecha mysql yy-mm-dd

Gracias una vez mas por vuestrar respuestas pero el caso es que ya lo e dejado solucionado y como ya dije me funciona a la perfección!

lo unico que si me gustaría es poder cambiar la forma en la que se muestra, que en vez de ser todo numerico: 28/09/2013, sea con el mes en letras: 28/Septiembre/2013

¿Se podría hacer esto??
  #11 (permalink)  
Antiguo 28/09/2013, 09:02
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 9 meses
Puntos: 0
Exclamación Respuesta: Fecha mysql yy-mm-dd

Tengo un gran problema con shadowbox....lo pongo en el foro de PHP


Saludos!!!
  #12 (permalink)  
Antiguo 28/09/2013, 09:14
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, 5 meses
Puntos: 2658
Respuesta: Fecha mysql yy-mm-dd

Ajá...
¿Y es un problema relacionado con este asunto de la fecha, o es por otro inconveniente?

Si es sobre esto mismo, explicate más claramente. Si se trata de otra cosa... abre un thread nuevo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 28/09/2013, 09:14
Mariuch
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fecha mysql yy-mm-dd

Cita:
Iniciado por angel_xx_1990 Ver Mensaje
lo unico que si me gustaría es poder cambiar la forma en la que se muestra, que en vez de ser todo numerico: 28/09/2013, sea con el mes en letras: 28/Septiembre/2013

¿Se podría hacer esto??
En mi respusta te pasé cómo hacer eso, fijate bien el comentario que dejé en el código:

Cita:
Iniciado por Mariuch Ver Mensaje
Código PHP:
<?php
    $datos 
date("d-F-Y"strtotime$datos'fecha' ] ) );

        
// El único problema es que trae el nombre del mes en inglés. Realmente no sé si existe una función que lo traiga directamente en español. Si no te sugiero que hagas una función que reemplace los nombres en inglés por nombres en español con str_replace por ejemplo

    
echo $datos;
?>
Este parseo de fecha te devuelve exactamente el formato que vos querés. Solamente que muestra el mes en inglés y tendrías que hacer una función de reemplazo.
En el link que te pasé está toda la documentación de cómo obtener valores personalizados a partir de la fecha.

Cita:
Iniciado por Mariuch Ver Mensaje
Para más información de la función date(); podés consultar acá.
  #14 (permalink)  
Antiguo 28/09/2013, 09:34
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Fecha mysql yy-mm-dd

Cita:
Iniciado por Mariuch Ver Mensaje
En mi respusta te pasé cómo hacer eso, fijate bien el comentario que dejé en el código:
Hola es posible pero me parece que es algo complicado es el asunto de configuración:

Código PHP:
Ver original
  1. if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
  2.     setlocale(LC_TIME, 'spanish');
  3. }else{
  4.     setlocale(LC_ALL,"es_ES");
  5. }
  6.  
  7. $d = "2010-03-03";
  8.  
  9. $fecha = strftime("%d de %B de %Y", strtotime($d));
  10.  
  11. $fecha = ucfirst(iconv("ISO-8859-1", "UTF-8", $fecha));
  12.  
  13. echo $fecha;

Rápida explicación del código, hace poco me vi en la obligación de pasar fechas a español, pero con la sorpresa de que muchos de los ejemplos que encontraba en la red no funcionaban, el setlocale no tenia efecto y no sabía el por qué de esto, hasta que me di cuenta de que en el servidor de Linux si me pasaba la fecha a español.

Luego de esto me di cuenta de que la palabra clave para español puede variar y que en mi computador personal (con Windows 7) la palabra era spanish, así que hice una condicional que dependiendo del SO de donde se ejecute así mismo cambia el setlocale.

Lo siguiente es obtener la fecha y usar la función strftime para formatear la fecha en español, pero he aquí mi nueva sorpresa: los acentos no funcionaban y me generaban caracteres extraños ... vuelve la burra al trigo, después de un rato de búsqueda encontré que strftime usaba ISO y yo al codificar yo con UTF-8 mis archivo no me funcionaba correctamente.

Para esta labor esta iconv.

Espero que les sirva

Documentación de strftime y de iconv

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #15 (permalink)  
Antiguo 28/09/2013, 11:50
Mariuch
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fecha mysql yy-mm-dd

Cita:
Iniciado por Mariuch Ver Mensaje
El único problema es que trae el nombre del mes en inglés. Realmente no sé si existe una función que lo traiga directamente en español.
Como puse en mi posteo original, no dije que fuera lo más práctico. Sinceramente no conocía lo que acabás de aportar. Lo voy a tener en cuenta para futuros desarrollos aunque nunca me tocó hasta ahora tener que usar el nombre del mes en lugar del número :P

Buen dato
  #16 (permalink)  
Antiguo 30/09/2013, 02:55
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Fecha mysql yy-mm-dd

Yeaaaa!!! genial toda esta informacion para un novatillo como yo! gracias chicos!!

Última edición por GatorV; 30/09/2013 a las 13:03

Etiquetas: fecha, mysql, select, sql, tabla
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 00:44.