Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Formato de Fecha PHP

Estas en el tema de Formato de Fecha PHP en el foro de PHP en Foros del Web. Buenas! En la base de datos tengo el formato de fecha como 2014/10/17 pero necesito mostrar OCT (abreviación de octubre). Hasta ahora logré aislar los ...
  #1 (permalink)  
Antiguo 17/10/2014, 17:17
 
Fecha de Ingreso: julio-2008
Mensajes: 57
Antigüedad: 15 años, 10 meses
Puntos: 0
Formato de Fecha PHP

Buenas! En la base de datos tengo el formato de fecha como 2014/10/17 pero necesito mostrar OCT (abreviación de octubre).

Hasta ahora logré aislar los caracteres que quiero mostrar de la siguiente manera:

Cita:
Código PHP:
Ver original
  1. <?php echo substr($row_news['fecha'],5,3); ?>
Pero me muestra en pantalla:

10/ cuando necesito que me muestre OCT

Me podrán ayudar?

Gracias de antemano!
  #2 (permalink)  
Antiguo 17/10/2014, 17:53
 
Fecha de Ingreso: julio-2008
Mensajes: 57
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Formato de Fecha PHP

O sea, en pantalla me muestra 10/ porque muestro a partir del caracter 5 los 3 caracteres. Pero necesito mostrar OCT. en lugar de 10/.
  #3 (permalink)  
Antiguo 17/10/2014, 23:17
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Formato de Fecha PHP

Utiliza la función strftime.

Código PHP:
Ver original
  1. setlocale(LC_ALL, 'esp');
  2. echo strftime('%d/%b/%Y'); // Esto imprime: 18/Oct/2014

Previamente, con la función setlocale, establezco la configuración regional, que en nuestro caso nos conviene por el tema del idioma. No olvides leer la descripción de los parámetros en el enlace que adjunto.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 18/10/2014, 08:21
 
Fecha de Ingreso: julio-2008
Mensajes: 57
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Formato de Fecha PHP

Alexis, la función strftime me imprime en pantalla el día de hoy, y yo lo que necesito es formatear el día que extraigo de la base de datos ejemplo:
Cita:
<?php echo substr($row_news['fecha'],5,3); ?>
Como podría aplicar el strftime para que lo que extraiga de la base salga con el formato en letras?
  #5 (permalink)  
Antiguo 18/10/2014, 08:53
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Formato de Fecha PHP

Pideselo directamente a mysql, al final de esta web hay ejemplos.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #6 (permalink)  
Antiguo 18/10/2014, 09:22
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Formato de Fecha PHP

Podrías pasarle a la función la marca de tiempo de la fecha como segundo argumento:

Código PHP:
Ver original
  1. setlocale(LC_ALL, 'esp');
  2. echo strftime('%d/%b/%Y', strtotime('07/31/1988')); //Imprime: 31/Jul/1988

Pero si el dato proviene de una base de datos, te conviene utilizar la función DATE_FORMAT, como bien te indica NSD.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 18/10/2014, 11:00
 
Fecha de Ingreso: julio-2008
Mensajes: 57
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Formato de Fecha PHP

Gracias, estoy más cerca de la solución:

La función:
Cita:
DATE_FORMAT(NOW(),'%d %b %y')
Me imprime lo que necesito:
Cita:
18 Oct 14
Pero necesito integrarlo a mi consulta que es esta:
Cita:
SELECT * FROM noticias ORDER BY fecha DESC
Para luego poder mostrarlo en pantalla:
Cita:
<?php echo $row_noticias['fecha']; ?>
Que me estaría faltando? perdón pero estoy medio duro, jajaja

Muchas gracias!
  #8 (permalink)  
Antiguo 18/10/2014, 11:27
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: Formato de Fecha PHP

No puedes llamar el SELECT con asterisco, deberás indicar los campos a leer y aplicar la función sobre el de fecha.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 18/10/2014, 13:28
 
Fecha de Ingreso: julio-2008
Mensajes: 57
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Formato de Fecha PHP

Esta es mi consulta MySQL:

Cita:
SELECT id, day, title, subtitle, photo, content FROM news ORDER BY day DESC
La función que le quiero agregar sería:
Cita:
DATE_FORMAT(NOW(),'%d %b %y')
Pero cuando la agrego de la siguiente manera:
Cita:
SELECT id, DATE_FORMAT(NOW(day),'%d %b %y'), title, subtitle, photo, content FROM news ORDER BY day DESC
No me trae ninguna fecha, la estoy agregando bien a la función?
  #10 (permalink)  
Antiguo 18/10/2014, 13:35
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Formato de Fecha PHP

Asígnale un alias y así podrás tomar el dato.

Código PHP:
Ver original
  1. $consulta = 'SELECT id, DATE_FORMAT(NOW(day),'%d %b %y') AS fecha, title, subtitle, photo, content FROM news ORDER BY day DESC';
  2. $query = mysqli_query($conexion, $consulta) or exit ('Se produjo un error');
  3. if (mysqli_num_rows($query)){
  4.     while ($row = mysqli_fetch_array($query)){
  5.         echo 'La fecha: ' . $row['fecha'] . '<br />';
  6.     }
  7.     mysqli_free_result($query);
  8. }

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #11 (permalink)  
Antiguo 18/10/2014, 13:52
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Formato de Fecha PHP

Cita:
NOW(day)
¿Y eso?

La funcion NOW() devuelve la fecha actual, no recibe parámetros.

Tienes que usar el dia directamente:
Código MySQL:
Ver original
  1. DATE_FORMAT(day, '%d %b %y')
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #12 (permalink)  
Antiguo 18/10/2014, 14:04
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Formato de Fecha PHP

Creo que tendría que usar CURDATE para obtener la fecha actual, sin la hora ni otros datos.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #13 (permalink)  
Antiguo 18/10/2014, 14:18
 
Fecha de Ingreso: julio-2008
Mensajes: 57
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Formato de Fecha PHP

Al final lo resolví con PHP utilizando una variable y un SWICH.

Variable:
Cita:
$date = substr($row_news['day'],5,3);
SWICH:
Cita:
<?php switch ($date) { case '01-'; echo "ENE";break;case '02-';echo "FEB";break; }?>
Y así consecutivamente hasta el mes 12.

Saludos!
  #14 (permalink)  
Antiguo 18/10/2014, 14:52
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Formato de Fecha PHP

¿Y por qué no seguiste las recomendaciones que te dimos? De esa forma funcionará, pero es mucho más ineficiente. Te hubieras ahorrado muchas líneas de código y trabajo al servidor si lo hubieras hecho como se te dijo, pero en fin.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: fecha, formato
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 13:33.