Foros del Web » Programando para Internet » PHP »

Fecha: Lunes, 28 de febrero de 2011

Estas en el tema de Fecha: Lunes, 28 de febrero de 2011 en el foro de PHP en Foros del Web. Hola!. He buscado como dar formato a la fecha, pero no logro dar con lo que deseo. Por eso posteo ahora: Se trata de que ...
  #1 (permalink)  
Antiguo 28/02/2011, 18:55
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 13 años, 7 meses
Puntos: 3
Fecha: Lunes, 28 de febrero de 2011

Hola!.
He buscado como dar formato a la fecha, pero no logro dar con lo que deseo.

Por eso posteo ahora:

Se trata de que tengo un campo datetime en mysql que guardo la fecha con este formato:
Código PHP:
Ver original
  1. 0000-00-00 00-00-00


Luego lo recupero de la base de datos y lo muestra así:

Código PHP:
Ver original
  1. 2011-02-28 20:19:18


Necesito una función que lo transforme a esto:

Lunes, 28 de febrero de 2010 a las 20:19:18

Saludos y disculpen las molestias!!!
  #2 (permalink)  
Antiguo 28/02/2011, 19:03
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Fecha: Lunes, 28 de febrero de 2011

No te daré el código hecho.. solo te daré la función que necesitas

www.php.net/strtotime <-- conviertes a unix timestamp
www.php.net/date <-- formateas como tu desees

en la pagina esta bastante claro con ejemplos y todo.. no creo que tengas problemas
saludos.
  #3 (permalink)  
Antiguo 28/02/2011, 19:05
Avatar de ColdFusion  
Fecha de Ingreso: octubre-2008
Ubicación: Tocoa, Colon Honduras C.A.
Mensajes: 419
Antigüedad: 15 años, 6 meses
Puntos: 9
Respuesta: Fecha: Lunes, 28 de febrero de 2011

obtene el campo datetime en una variable y lo tranformas asi

Código PHP:
echo date("l, D de F"strtotime($fecha)); 
  #4 (permalink)  
Antiguo 28/02/2011, 20:03
Avatar de almagropaco_  
Fecha de Ingreso: marzo-2008
Ubicación: Mar del Plata
Mensajes: 854
Antigüedad: 16 años, 1 mes
Puntos: 25
Respuesta: Fecha: Lunes, 28 de febrero de 2011

Yo uso algo como esto:
Código PHP:
Ver original
  1. $fechaconvertida=date("l, d F o H:i:s", strtotime($row[fecha]));
  2. echo $fechaconvertida;

Pero el resultado sale en ingles, no en español, no se si te podra servir. El resultado sale asi:
Cita:
SATURDAY, 05 FEBRUARY 2011 23:28:20
Suerte

Última edición por almagropaco_; 28/02/2011 a las 20:14
  #5 (permalink)  
Antiguo 28/02/2011, 20:29
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 13 años, 7 meses
Puntos: 3
Respuesta: Fecha: Lunes, 28 de febrero de 2011

Muchisimas gracias a todos por la ayuda !!!

He aplicado esta función :

Código PHP:
Ver original
  1. <?php
  2. error_reporting(E_ALL & ~E_NOTICE);
  3. date_default_timezone_set("America/Santiago");
  4. function fechaFormateada($FechaStamp){
  5.                
  6.                 $separado   = explode(" ",$FechaStamp);
  7.                
  8.                 $ano        = date('Y',$FechaStamp);
  9.                 $mes        = date('n',$FechaStamp);
  10.                 $dia        = date('d',$FechaStamp);
  11.                 $diasemana  = date('w',$FechaStamp);
  12.                 $fecha      = explode('-',$separado[0]);
  13.                
  14.                 $diassemanaN= array("Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado");
  15.                 $mesesN=array(1=>"Enero","Febrero","Marzo","Abril" ,"Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
  16.                
  17.                 return $diassemanaN[$diasemana].", $dia de ". $mesesN[$mes] ." de $ano a las $separado[1]";
  18.             }
  19.  
  20. echo fechaFormateada('2011-02-28 20:41:39');
  21.  
  22.  
  23. ?>

Pero ocurre un problema en la fecha, me aparece así :

Miércoles, 31 de Diciembre de 1969 a las 20:41:39

En tanto a la hora, aparece bien.

Ayuda por favor!
  #6 (permalink)  
Antiguo 28/02/2011, 21:20
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 13 años, 7 meses
Puntos: 3
Respuesta: Fecha: Lunes, 28 de febrero de 2011

Bueno al final estuve analizando paso por paso y llegue a esto:

Código PHP:
Ver original
  1. <?php
  2. error_reporting(E_ALL & ~E_NOTICE);
  3. date_default_timezone_set("America/Santiago");
  4.  
  5. function fecha($fecha){
  6.                     $diaConvert = date("l", strtotime($fecha));
  7.                     $separado   = explode(" ",$fecha);
  8.                     $meses      = array("","Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
  9.                     $fecha      = explode('-',$separado[0]); //$fecha[0] = Año , $fecha[1] = Mes , $fecha[2] = Día | $separado[0] = 2011-02-28 , $separado[1] = 20:41:39
  10.        
  11.    
  12.                     if($diaConvert == 'Monday'){
  13.                         $dia = 'Lunes';
  14.                     }else if($diaConvert == 'Tuesday'){
  15.                         $dia = 'Martes';
  16.                     }else if($diaConvert == 'Wednesday'){
  17.                         $dia = 'Miércoles';
  18.                     }else if($diaConvert == 'Thursday'){
  19.                         $dia = 'Jueves';
  20.                     }else if($diaConvert == 'Friday'){
  21.                         $dia = 'Viernes';
  22.                     }else if($diaConvert == 'Saturday'){
  23.                         $dia = 'Sábado';
  24.                     }else if($diaConvert == 'Sunday'){
  25.                         $dia = 'Domingo';
  26.                     }
  27.  
  28.                     return $dia.", ".$fecha[2]." de ".$meses[intval($fecha[1])]." del ".$fecha[0]." a las ".$separado[1];  // Lunes, 28 de Febrero del 2011 a las 20:41:39
  29.                 }
  30.  
  31. echo  fecha('2011-02-28 20:41:39');
  32.  
  33. ?>

Al parecer funciona bien, pero no estoy realmente seguro.

Saludos y gracias por la cooperación. =)

Última edición por ZeThito; 28/02/2011 a las 21:37

Etiquetas: febrero, fechas
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 23:52.