Foros del Web » Programando para Internet » PHP »

Almacenamiento de fechas

Estas en el tema de Almacenamiento de fechas en el foro de PHP en Foros del Web. holas , estoy trabajando con php y mysql tengo que almacenar en mi tabla la fecha actual y la fecha limite que es un mes ...
  #1 (permalink)  
Antiguo 07/01/2004, 14:20
 
Fecha de Ingreso: diciembre-2003
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
Almacenamiento de fechas

holas , estoy trabajando con php y mysql

tengo que almacenar en mi tabla la fecha actual y la fecha limite que es un mes despues, entonces lo que hago es:

$hoy=getdate();

$fecha_lim = mktime(0,0,0,date("m"),date("d")+30,date("Y"));

y almaceno

$consulta = "insert into datos_cliente(id,nombre,fecha_ins,fecha_lim) values ('$cod','$nombre','$hoy[year]-$hoy[mon]-$hoy[mday]','$fecha_lim[Y]-$fecha_lim[n_mes]-$fecha_lim[d]');";
$reg= mysql_query($consulta);

y no me almacena nada en fecha_lim

intento poner en lugar de $fecha_lim[Y]-$fecha_lim[n_mes]-$fecha_lim[d]' simplemente $fecha_lim y tampoco me almacena nada
por favor como es que tengo que almacenar esta fecha?????????????

gracias
  #2 (permalink)  
Antiguo 07/01/2004, 14:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En Mysql ya tienes a tu disposición infinidad de funciones para gestionar fechas y tipos de datos expeciales para fechas.

Me refiero a NOW() por ejemplo que te dá la hora actual del servidor (Msyql) ...

O a los campos tipo DATE o DATETIME que son ideales para trabajar y gestionar fechas.

También tines DATE_FORMAT() para darle el formato a esa fecha (que por defecto se guarda en formato standar aaaa-mm-dd ).

Revisa estas secciones del manual oficial de Mysql (por ese orden):

http://www.mysql.com/doc/en/Column_types.html
http://www.mysql.com/doc/en/DATETIME.html
http://www.mysql.com/doc/en/Date_and...functions.html

Cuanto más SQL uses para trabajar con tu BD mejor ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 07/01/2004, 17:22
 
Fecha de Ingreso: diciembre-2003
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
y segun mi codigo no me puedes decir como exactamente se guarda o cual es el codigo correcto, en todo los links hablan del manejo de las fechas pero no de como se almacena exactamente, yo puedo desplegar la informacion en panatalla pero no guardarla

gracias
  #4 (permalink)  
Antiguo 07/01/2004, 17:33
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

¿Y que tipo de campos son fecha_ins y fecha_lim, DATE o TIMESTAMP? Porque $fecha_lim es un timestamp. Para usarlo como $hoy tendrias que hacer:
Código PHP:
$fecha_lim getdate(mktime(0,0,0,date("m"),date("d")+30,date("Y"))); 
REvisa en el manual getdate() (www.php.net/getdate) y mktime() (www.php.net/mktime).

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 08/01/2004, 08:15
 
Fecha de Ingreso: diciembre-2003
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
josemi intente poniendo tu instruccion pero tampoco almaceno nada, ambos campos fecha_ins y fecha_lim son campos date, pero probe cambiando fecha_lim a timestamp y me almacena la fecha pero no en formaro YYYY-MM-DD
que mas creen q pueda ser??

probé haciendo

$fecha_lim=date( "Y-m-d", mktime(0,0,0,date("m"),date("d")+30,date("Y")) );
echo "$fecha_lim";

entonces $fecha_lim imprime lo correcto YYYY-MM-DD pero al almacenarlo en la base de datos como $fecha_lim almacena NULL

nose que soluciones mas darle
osea que agradecere todo lo que me puedan ayudar

gracias
  #6 (permalink)  
Antiguo 08/01/2004, 08:20
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
A ver, si $hoy te lo guarda bien, con:
Código PHP:
$hoy=getdate();
$fecha_lim getdate(mktime(0,0,0,date("m"),date("d")+30,date("Y")));
$consulta "insert into datos_cliente(id,nombre,fecha_ins,fecha_lim) values ('$cod','$nombre','$hoy[year]-$hoy[mon]-$hoy[mday]','$fecha_lim[year]-$fecha_lim[mon]-$fecha_lim[mday]');";
$regmysql_query($consulta); 
deberia funcionar.

O si prefieres con:
Código PHP:
$fecha_lim=date"Y-m-d"mktime(0,0,0,date("m"),date("d")+30,date("Y")) );
echo 
"$fecha_lim";
$consulta "insert into datos_cliente(id,nombre,fecha_ins,fecha_lim) values ('$cod','$nombre','$hoy[year]-$hoy[mon]-$hoy[mday]','$fecha_lim');"
tambien deberia funcionarte.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 08/01/2004, 08:30
 
Fecha de Ingreso: diciembre-2003
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
ya probe ambas formas
muchas gracias de todos modos
me parece super raro que no funcione debe ser algun detalle q no esta bien
pero ambas formas ya las corri y no almacena nada
  #8 (permalink)  
Antiguo 08/01/2004, 08:35
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Prueba a poner directamente una fecha en la consulta. Y haz un:
Código PHP:
$regmysql_query($consulta) or die("Error $consulta <br>MySQL dice: ".mysql_error()); 
por si se esta produciendo un error.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #9 (permalink)  
Antiguo 08/01/2004, 08:58
 
Fecha de Ingreso: diciembre-2003
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
te cuento que no me da error pero tampoco almacena, no alamacena nada, puse exactamente lo mismo que al campo fecha_ins y de todos modos no graba nada, al final borreo el campo y volvi a insertar el campo fecha_lim y nada :( ahora si que es problema en la base de datos pero no tengo idea el motivo
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 00:45.