Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP datetime() : de fecha actual a --> fecha desde base de datos.

Estas en el tema de PHP datetime() : de fecha actual a --> fecha desde base de datos. en el foro de PHP en Foros del Web. Hola, pues tengo este codigo : Código PHP: <?php $dias  = array( "Domingo" , "Lunes" , "Martes" , "Miercoles" , "Jueves" , "Viernes" , "Sábado" ); ...
  #1 (permalink)  
Antiguo 12/06/2014, 09:48
 
Fecha de Ingreso: abril-2014
Mensajes: 26
Antigüedad: 10 años
Puntos: 0
PHP datetime() : de fecha actual a --> fecha desde base de datos.

Hola, pues tengo este codigo :

Código PHP:
<?php
$dias 
= array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sábado");
$meses = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
 
echo 
$dias[date('w')].", ".date('d')." de ".$meses[date('n')-1]. " del ".date('Y') ;
//Salida: Jueves, 12 de Junio del 2014
?>
Y está muy bien... pero esa fecha se muestra desde LOCAL y yo quiero que me muestre la fecha desde mi base de datos...

mi variable que tiene la fecha desde la BD es así :

Código PHP:
$FechaArticulo['dtmFecha'
* 'dtmFecha' es el nombre del campo de mi tabla.


:: Entonces como puedo agregar esta variable$FechaArticulo['dtmFecha'] al codigo antes mencionado?
  #2 (permalink)  
Antiguo 12/06/2014, 10:55
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: PHP datetime() : de fecha actual a --> fecha desde base de datos.

Puedes obtener los valores desde la misma query, si quieres:
Código MySQL:
Ver original
  1. SELECT DAY(dtmFecha) dia, MONTH(dtmFecha) mes, YEAR(dtmFecha) anio
  2. FROM tabla
Cada uno de los datos vendrá en una columna y simplemente los usarás...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 12/06/2014, 18:51
 
Fecha de Ingreso: abril-2014
Mensajes: 26
Antigüedad: 10 años
Puntos: 0
Respuesta: PHP datetime() : de fecha actual a --> fecha desde base de datos.

más me confundo... saldría variables de eso¿ y como le hago para implementarlo en el codigo... quiero que se muestre así:

Jueves, 12 de Junio del 2014
  #4 (permalink)  
Antiguo 14/06/2014, 17:03
 
Fecha de Ingreso: abril-2014
Mensajes: 26
Antigüedad: 10 años
Puntos: 0
Respuesta: PHP datetime() : de fecha actual a --> fecha desde base de datos.

alguien me puede decir como agrego la variable que puse en el codigo que mencione¿

Última edición por AprendizPollito; 17/06/2014 a las 05:18
  #5 (permalink)  
Antiguo 19/06/2014, 06:54
 
Fecha de Ingreso: abril-2014
Mensajes: 26
Antigüedad: 10 años
Puntos: 0
Respuesta: PHP datetime() : de fecha actual a --> fecha desde base de datos.

Buenos dias... aún no consigo implementar esta variable de mi BD :

$FechaArticulo['dtmFecha']


al codigo que puse :

Código PHP:
 <?php
$dias 
= array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sábado");
$meses = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
 
echo 
$dias[date('w')].", ".date('d')." de ".$meses[date('n')-1]. " del ".date('Y') ;
//Salida: 
?>
Necesito que me muestre de esta manera :

Jueves, 12 de Junio del 2014


*la variable de mi BD es datetime.

alguien que me pueda decir como implementarlo al codigo¿
  #6 (permalink)  
Antiguo 19/06/2014, 07:27
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: PHP datetime() : de fecha actual a --> fecha desde base de datos.

Con la poderosa clase DateTime no lleva mucho resolverlo...... recomiendo usarla......

Código PHP:
Ver original
  1. <?php
  2. /*
  3.     @author: italico76
  4.    
  5.     @parameter date in format 'aaaa-mm-dd hh:mm:ss' (DATETIME de SQL)
  6.     @return algo como "Jueves, 12 de Junio del 2014"
  7. */
  8. function get_formated_date($date)
  9. {
  10.  
  11. if (empty($date) or strlen($date)!=19)
  12.     throw new Exception ("Fecha en formato invalido y <> de DATETIME");
  13.  
  14. $f = DateTime::createFromFormat('Y-m-d H:m:s', $date);
  15. $errors = DateTime::getLastErrors();           
  16. $valid = ($errors['warning_count']==0 and $errors['error_count']==0);
  17.  
  18. if (!$valid)
  19.     throw new Exception ("Fecha en formato invalido y <> de DATETIME");
  20.    
  21.  
  22. $dias['es'] = array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sábado");
  23. $dias['en'] = array("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday");
  24.  
  25. $meses['es'] =
  26. array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
  27. $meses['en'] = array('January','February','March','April','May','June','July','August','September','October','November','December');
  28.  
  29.  
  30. $out = $f->format('l j \d\e F \d\e\l Y');
  31. $out = str_replace($dias['en'],$dias['es'],$out);
  32. $out = str_replace($meses['en'],$meses['es'],$out);
  33.  
  34. return $out;
  35. }

Se usa asi:

Código PHP:
Ver original
  1. echo get_formated_date('2014-06-12 23:06:27');

Se puede mejorar la eficiencia y aqui la version en MySQL basado en el ejemplo de @gnzsoloyo

Código SQL:
Ver original
  1. SELECT
  2.     DAY(dtmFecha) dia, MONTH(dtmFecha) mes, YEAR(dtmFecha) anio,
  3.     CASE DAYOFWEEK(dtmFecha)
  4.       WHEN 7 THEN 'Sabado'
  5.       WHEN 1 THEN 'Domingo'
  6.       WHEN 2 THEN 'Lunes'
  7.       WHEN 3 THEN 'Martes'
  8.       WHEN 4 THEN 'Miercoles'
  9.       WHEN 5 THEN 'Jueves'
  10.       WHEN 6 THEN 'Viernes'
  11.       ELSE 'error'
  12.     END
  13.  AS diasemana FROM `tu_tabla` WHERE (condiciones)

Y desde PHP si usas la ultima solucion haces:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $meses =
  4. array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
  5.  
  6. $dia = $registro['dia'];
  7. $mes = $registro['mes'];
  8. $anio = $registro['anio'];
  9. $diasemana = $registro['diasemana'];
  10.  
  11. $fecha = "$diasemana, $dia de {$meses[$mes]} del $anio";
__________________
Salu2!

Última edición por Italico76; 19/06/2014 a las 08:40
  #7 (permalink)  
Antiguo 19/06/2014, 09:04
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: PHP datetime() : de fecha actual a --> fecha desde base de datos.

Otra opcion es profundizar lo que MySQL te puede dar........

Código MySQL:
Ver original
  1.     CONCAT(
  2.     CASE DAYOFWEEK(dtmFecha)
  3.       when 7 then 'Sabado'
  4.       when 1 then 'Domingo'
  5.       when 2 then 'Lunes'
  6.       when 3 then 'Martes'
  7.       when 4 then 'Miercoles'
  8.       when 5 then 'Jueves'
  9.       when 6 then 'Viernes'
  10.       else 'error'
  11.     end,', ',DAY(dtmFecha),' de ',MONTHNAME(dtmFecha),' del ',YEAR(dtmFecha)
  12.     )
  13.  
  14.  FROM `tabla` WHERE (condiciones)

El unico problema es que no se usar bien la funcion REPLACE() de MySQL asi que queda pendiente reemplaces el mes que quedo numerico
__________________
Salu2!

Última edición por Italico76; 19/06/2014 a las 09:11
  #8 (permalink)  
Antiguo 19/06/2014, 22:34
 
Fecha de Ingreso: abril-2014
Mensajes: 26
Antigüedad: 10 años
Puntos: 0
Respuesta: PHP datetime() : de fecha actual a --> fecha desde base de datos.

xD! gracias por tu respuesta super completa >.<!

me sirvió!!

Etiquetas: actual, datetime, fecha, tabla, variable
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 04:53.