Foros del Web » Programando para Internet » PHP »

PROBLEMAS al obtener Dia/Mes/Año de un date

Estas en el tema de PROBLEMAS al obtener Dia/Mes/Año de un date en el foro de PHP en Foros del Web. Hola todos!! vereis, he estado mirando algun tema abierto relacionado con mi problema pero no logro resolverlo. Quiero obtener el dia, el mes y el ...
  #1 (permalink)  
Antiguo 06/11/2010, 16:59
 
Fecha de Ingreso: octubre-2010
Mensajes: 27
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta PROBLEMAS al obtener Dia/Mes/Año de un date

Hola todos!!

vereis, he estado mirando algun tema abierto relacionado con mi problema pero no logro resolverlo.
Quiero obtener el dia, el mes y el año de una variable $fecha (2010-11-22).
Uso la funcion date tal como:
$day = date('d',$fecha);
$month = date('m',$fecha);
$year = date('Y',$fecha);

pero el resultado que obtengo es:
$day = 1
$month = 1
$year = 1970
Me sale la primera fecha por defecto!...

Os escribo mi codigo:

$sdate = JRequest::getVar('sdate');
$s_hour = (int) JRequest::getVar('s_hour');
$s_min = (int) JRequest::getVar('s_minute');
$edate = JRequest::getVar('edate');
$e_hour = (int) JRequest::getVar('e_hour');
$e_min = (int) JRequest::getVar('e_minute');
$title = $this->_db->Quote(JRequest::getVar('title'));
$project = $this->_db->Quote((int)$this->_session->getParameter('workspace'));
$user = $this->_session->getUser();
$now = $this->_db->Quote(time());

$new_sdate = $this->_db->Quote($sdate);
$new_edate = $this->_db->Quote($edate);

$day = $this->_db->Quote(date('d',$sdate));
$month = $this->_db->Quote(date('m',$sdate));
$year = $this->_db->Quote(date('Y',$sdate));

* Si pruebo con $sdate... me sale el resultado anterior...
* Si pruebo con $new_sdate... me sale error...

que puede ser???....
Alguien sabe donde esta el problema??

Muchas gracias!!
  #2 (permalink)  
Antiguo 06/11/2010, 17:10
 
Fecha de Ingreso: octubre-2008
Mensajes: 76
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: PROBLEMAS al obtener Dia/Mes/Año de un date

lo podes hacer con split

list(,$anio,$mes,$dia)=split("-",$fecha);
  #3 (permalink)  
Antiguo 06/11/2010, 18:01
 
Fecha de Ingreso: octubre-2010
Mensajes: 27
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: PROBLEMAS al obtener Dia/Mes/Año de un date

hmmmm..... no conozco eso de "split"...

puedes decirme exactamente como lo pongo?

gracias ivanber!
  #4 (permalink)  
Antiguo 06/11/2010, 18:11
 
Fecha de Ingreso: octubre-2008
Mensajes: 76
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: PROBLEMAS al obtener Dia/Mes/Año de un date

list($anio,$mes,$dia)=split("-",$fecha); asi como te lo puse yo.. vas a tener en una variable el año el mes y el dia.
  #5 (permalink)  
Antiguo 06/11/2010, 18:23
 
Fecha de Ingreso: octubre-2010
Mensajes: 27
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: PROBLEMAS al obtener Dia/Mes/Año de un date

MUCHAS GRACIAS IVANBER!!!!!

FUNCIONA PERFECTAMENTE! y en una sola linea!
  #6 (permalink)  
Antiguo 06/11/2010, 18:37
 
Fecha de Ingreso: octubre-2008
Mensajes: 76
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: PROBLEMAS al obtener Dia/Mes/Año de un date

de nada espero que te valla bien.
  #7 (permalink)  
Antiguo 06/11/2010, 19:03
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: PROBLEMAS al obtener Dia/Mes/Año de un date

Cita:
Iniciado por minoyo Ver Mensaje
hmmmm..... no conozco eso de "split"...

puedes decirme exactamente como lo pongo?

gracias ivanber!

Solo un consejo. Aunque la función split ha sido declarada obsoleta desde PHP 5.3.0, creo que sería mejor dejar de usarla desde ya. En su lugar, utiliza explode.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #8 (permalink)  
Antiguo 06/11/2010, 20:59
Avatar de bng5  
Fecha de Ingreso: junio-2009
Ubicación: 127.0.0.1
Mensajes: 269
Antigüedad: 14 años, 10 meses
Puntos: 24
Respuesta: PROBLEMAS al obtener Dia/Mes/Año de un date

Perdonen que me meta ahora, pero la solución que encontraron me parece bastante desprolija.

Según lo que dijiste en el primer mensaje: a la función date le estás pasando la variable fecha con el formato YYYY-MM-DD. Eso es un error, el timestamp debe ser en formato epoch (Tiempo Unix o POSIX), o sea: el tiempo en segundos desde el 1 de enero de 1970.

Lo de usar explode sirve, pero estamos hablando de fechas, no de cadenas.

Para convertir a epoch podés usar la función strtotime.
Código PHP:
Ver original
  1. <?php
  2.  
  3. $fecha = strtotime('2010-11-22');
  4.  
  5. $day = date('d',$fecha);
  6. $month = date('m',$fecha);
  7. $year = date('Y',$fecha);
  8.  
  9. ?>

Aunque en realidad sería mucho mejor usar la clase DateTime.

Código PHP:
Ver original
  1. <?php
  2.  
  3. $fecha = new DateTime('2010-11-22');
  4.  
  5. $day = $fecha->format('d');
  6. $month = $fecha->format('m');
  7. $year = $fecha->format('Y');
  8.  
  9. ?>
  #9 (permalink)  
Antiguo 07/11/2010, 06:17
 
Fecha de Ingreso: octubre-2010
Mensajes: 27
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: PROBLEMAS al obtener Dia/Mes/Año de un date

Muchas gracias a todos!
La solucion que me dio ivanber me funciona perfectamente, pero no obtante, probare las demas.

gracias de nuevo!

Etiquetas: date
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 17:16.