Foros del Web » Programando para Internet » PHP »

Problema convirtiendo una fecha...

Estas en el tema de Problema convirtiendo una fecha... en el foro de PHP en Foros del Web. Saludos amigos, Estoy teniendo problemas actualizando unas fechas de una Base de Datos de MySQL... modify_user.php Código HTML: ... $birth = '27/01/1969'; $user = new ...
  #1 (permalink)  
Antiguo 07/10/2009, 22:26
 
Fecha de Ingreso: noviembre-2001
Ubicación: México DF
Mensajes: 128
Antigüedad: 22 años, 4 meses
Puntos: 0
Problema convirtiendo una fecha...

Saludos amigos,

Estoy teniendo problemas actualizando unas fechas de una Base de Datos de MySQL...

modify_user.php
Código HTML:
...
$birth = '27/01/1969';
$user = new User();
$user->birth = date('Y-m-d', strtotime($birth));  // <- campo tipo Date
$user->modified = date('Y-m-d H:i:s');            // <- campo tipo TimeStamp
$user->update();
...
Cuando se ejecuta la función update() el resultado obtenido en el campo modified es correcto (la fecha actual en formato 2009-10-07 23:18:15), pero en el campo birth obtengo la fecha 1969-12-31 (en vez de 1969-01-27)
Ya probé con la función strftime sin resultados, tampoco cambiando el orden: MM-DD-AAAA, etc.

Ayuda, please!!!!

Saludos,
Silver
__________________
Nuedi Servicios SA de CV
http://www.nuedi.mx
  #2 (permalink)  
Antiguo 07/10/2009, 23:10
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
Respuesta: Problema convirtiendo una fecha...

proba cambiando

Código php:
Ver original
  1. $birth = '27/01/1969';
  2. //por
  3. $birth = '1969-01-27';

pero no entiedo para que haces eso, si la info la tomas de un formulario crea la cadena del campo DATE sin tener que utilizar la funcion date de php

Última edición por samu22; 07/10/2009 a las 23:22
  #3 (permalink)  
Antiguo 07/10/2009, 23:29
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Problema convirtiendo una fecha...

Código php:
Ver original
  1. function FormatDate($fecha){
  2. $f = explode("/",$fecha);
  3. return date("Y-m-d",mktime(0,0,0,$f[1],$f[0],$f[2]));
  4. }
  5.  
  6.  
  7.  
  8. echo FormatDate("27/01/1969");
  #4 (permalink)  
Antiguo 07/10/2009, 23:56
 
Fecha de Ingreso: noviembre-2001
Ubicación: México DF
Mensajes: 128
Antigüedad: 22 años, 4 meses
Puntos: 0
Respuesta: Problema convirtiendo una fecha...

Gracias amigos,

Funcionó la función FormatDate!
Saludos!
__________________
Nuedi Servicios SA de CV
http://www.nuedi.mx
  #5 (permalink)  
Antiguo 08/10/2009, 00:05
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
Respuesta: Problema convirtiendo una fecha...

si los datos los estas estas tomando de inputs no necesitarias utilizar esta funcion, ni date solo organizar el string cuando recibes los datos

Código php:
Ver original
  1. $fecha_nacimiento = $_POST['dYear'].'-'.$_POSt['dMont'].'-'.$_POST['dDay'];
  #6 (permalink)  
Antiguo 08/10/2009, 00:13
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Problema convirtiendo una fecha...

Cita:
Iniciado por samu22 Ver Mensaje
si los datos los estas estas tomando de inputs no necesitarias utilizar esta funcion, ni date solo organizar el string cuando recibes los datos

Código php:
Ver original
  1. $fecha_nacimiento = $_POST['dYear'].'-'.$_POSt['dMont'].'-'.$_POST['dDay'];


No creo que reciba los dato separados, lo digo por la forma en que lo esta exponiendo Silver.

En todo caso si lo recibes por post modificamos la funcion .

Código PHP:
Ver original
  1. function FormatDate($fecha){
  2.     $f = explode("/",$fecha);  
  3.     return $f[2].'-'.$f[1].'-'.$f[0];
  4.    
  5.     }
  6.  
  7.  
  8.  
  9. $_POST['Fecha'] = '27/01/1969';  // Ejemplo del contenido de post en caso de que sea un input que contiene la fecha.
  10. echo FormatDate($_POST['Fecha']);
  #7 (permalink)  
Antiguo 08/10/2009, 00:26
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
Respuesta: Problema convirtiendo una fecha...

Cita:
Iniciado por gjx2 Ver Mensaje
No creo que reciba los dato separados, lo digo por la forma en que lo esta exponiendo Silver.

En todo caso si lo recibes por post modificamos la funcion .

Código PHP:
Ver original
  1. function FormatDate($fecha){
  2.     $f = explode("/",$fecha);  
  3.     return $f[2].'-'.$f[1].'-'.$f[0];
  4.    
  5.     }
  6.  
  7.  
  8.  
  9. $_POST['Fecha'] = '27/01/1969';  // Ejemplo del contenido de post en caso de que sea un input que contiene la fecha.
  10. echo FormatDate($_POST['Fecha']);
en ese caso seria valido pero si lo dejas a gusto del usuario puede ingresar una fecha 21-01-1969
  #8 (permalink)  
Antiguo 08/10/2009, 00:43
 
Fecha de Ingreso: noviembre-2001
Ubicación: México DF
Mensajes: 128
Antigüedad: 22 años, 4 meses
Puntos: 0
Respuesta: Problema convirtiendo una fecha...

Hola amigos,

El dato se introduce vía un Prompt de javascript y se envía POST con el formulario a un archivo PHP.
El usuario tiene especificado que debe entrar la fecha en el formato DD/MM/AAAA, pero cuando en PHP hacía el update de la base de datos la fecha me llegaba en otro formato.
Pero con la función que me dieron ya llega correctamente... quedó así:

Código HTML:
...
	// Insert the answers for a test
	static public function answeringTest($iduser, $idass, $arransw, $add) {
		$strSQL = 'INSERT INTO `answers` (`assignedtestid`, `questionid`, `answer`, `duration`) VALUES ';
		foreach ($arransw as $key=>$value)
			if (strpos($key, $add) !== false) {
				$tmparr = explode("_", $value);
				if (intval($tmparr[2]) > 0)
					$strSQL .= '('.$idass.','.$tmparr[0].',"'.$tmparr[2].'",'.($add=="quest_"?$tmparr[3]:0).'),';
			}
		$strSQL = rtrim($strSQL,',');
		$result = Db::getInstance()->Execute($strSQL);
		$user = new User(intval($iduser));
			
		$arrdate = explode("/",$arransw['Birth']);
		$user->birth = date("Y-m-d", mktime(0,0,0,$arrdate[1],$arrdate[0],$arrdate[2]));
		$user->update(true);
		Log::addLog($cookie->iduser, 4, 'Enviando Respuestas');
			
		if (!$result)
			return false;
			
		return true;
	}
Saludos!!!!
__________________
Nuedi Servicios SA de CV
http://www.nuedi.mx
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 19:28.