Foros del Web » Programando para Internet » PHP »

Fechas y BBDD.

Estas en el tema de Fechas y BBDD. en el foro de PHP en Foros del Web. Hola, tengo un problemilla con una fecha para mi php. El caso es que quiero que un usuario mediante un formulario me introduzca una fecha ...
  #1 (permalink)  
Antiguo 15/06/2010, 05:45
Avatar de Flow89  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 346
Antigüedad: 14 años, 7 meses
Puntos: 1
Fechas y BBDD.

Hola, tengo un problemilla con una fecha para mi php.

El caso es que quiero que un usuario mediante un formulario me introduzca una fecha con PHP en formato 09/01/2001

A la hora de guardarlo a la BBDD me guarda solo 09, al llegar a la / deja de introducir datos.

Me gustaría saber como puedo arreglarlo.


Despues tengo una pequeña duda.. Se pueden comparar dos fechas (09/10/2010 y 11/09/2011) con alguna funcion sin tener que hacer nada mas? Es decir ponerle las 2 fechas en ese formato y que te lo compare para ver cual es mayor y cual menor.

Un saludo y gracias.
__________________
Seamos realistas. Busquemos lo imposible. ;)
La forma de dar las gracias en este foro, es dando Karma, aunque a veces con un simple Gracias, basta.
  #2 (permalink)  
Antiguo 15/06/2010, 05:57
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 7 meses
Puntos: 26
Respuesta: Fechas y BBDD.

Para las dos cosas te puedo decir la misma solución.

Hay una funcion la qual pasa las fechas a segundos Unix. Asi en la BD puedes guardar los segundos y quando los llames volverlos a pasar a fechas. De la misma forma puede compara 2 fechas con sus respectivos segundos.

Lo malo que ahora mismo no me acuerdo de como se llamaba la funcion
  #3 (permalink)  
Antiguo 15/06/2010, 06:03
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 7 meses
Puntos: 26
Respuesta: Fechas y BBDD.

Mira la funcion mktime:
http://php.net/manual/es/function.mktime.php

Crea que era esta. xD, a ver si te sirve
  #4 (permalink)  
Antiguo 15/06/2010, 06:46
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Fechas y BBDD.

Aqui te dejo un codigo que he desarrollado yo , que convierte la fecha en minutos ya que a ti no te interesan segundos supongo , es totalmente exacto , y hasta puedes modificar los años , para que la diferencia de febrero sea exacta. Sirve para hacer operaciones con fechas , y comparaciones.

Código:
$dateyear = date("Y");
$date2year = date("Y");
$datemes = date("n");
$date2mes = date("n");
$datedia = date("j");
$date2dia = date("j");
$datehora = date("G");
$date2hora = date("G");
$datemin = date("i");
$date2min = date("i");
$mesenmintot = 0;
$visoc = 0;
if($dateyear == 2012 or $dateyear == 2016 or $dateyear == 2020 or $dateyear == 2024 or $dateyear == 2028 or $dateyear == 2032 or $dateyear == 2036 or $dateyear == 2040){
				$visoc = 1;
				
			}
if($datemes == 1){
				$mesenmintot = 0;
				
			}
if($datemes == 2){
				$mesenmintot = 31;
				
			}
if($datemes == 3){
				$mesenmintot = 59 + $visoc;
				
			}
if($datemes == 4){
				$mesenmintot = 90 + $visoc;
				
			}
if($datemes == 5){
				$mesenmintot = 120 + $visoc;
				
			}
if($datemes == 6){
				$mesenmintot = 151 + $visoc;
				
			}
if($datemes == 7){
				$mesenmintot = 181 + $visoc;
				
			}
if($datemes == 8){
				$mesenmintot = 212 + $visoc;
				
			}
if($datemes == 9){
				$mesenmintot = 243 + $visoc;
				
			}	
if($datemes == 10){
				$mesenmintot = 273 + $visoc;
				
			}
if($datemes == 11){
				$mesenmintot = 304 + $visoc;
				
			}
if($datemes == 12){
				$mesenmintot = 334 + $visoc;
				
			}		
$anoenmin = ($dateyear * 365 * 24 * 60);
$mesenmin = ($mesenmintot * 24 * 60);
$diaenmin = ($datedia * 24 * 60);
$horaenmin = ($datehora * 60);
$min = ($datemin);
$fechatot = ($anoenmin + $mesenmin + $diaenmin + $horaenmin + $min);
  #5 (permalink)  
Antiguo 15/06/2010, 15:07
 
Fecha de Ingreso: marzo-2010
Ubicación: Venezuela
Mensajes: 23
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Fechas y BBDD.

Hola Flow89, si estas trabajanco con BD MySql el formato que soporta para las fechas es de tipo aaaa-mm-dd, por tal motivo te debe emitir el error al intentar insertar con otro tipo de formato (/), yo utilizo explode y me funciona de pelos te pongo un ejemplo y espero que te funcione ;)

Código PHP:
$var=$fecha;
    
$cha=explode('/',$var);
    
$anio=$cha[2];
    
$mes=$cha[1];
    
$dia=$cha[0];
    
$fechacambiada="$anio".'-'."$mes".'-'."$dia"
En donde $fecha: es la fecha que estas capturando del formulario y $fechacambiada es la fecha con el formato apto para guardar en la bd.

Existe otra función llamada substr, que también funciona muy bien solo que es algo más tediosa a mi parecer.
  #6 (permalink)  
Antiguo 16/06/2010, 01:27
Avatar de Flow89  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 346
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Fechas y BBDD.

Cita:
Iniciado por lis06 Ver Mensaje
Hola Flow89, si estas trabajanco con BD MySql el formato que soporta para las fechas es de tipo aaaa-mm-dd, por tal motivo te debe emitir el error al intentar insertar con otro tipo de formato (/), yo utilizo explode y me funciona de pelos te pongo un ejemplo y espero que te funcione ;)

Código PHP:
$var=$fecha;
    
$cha=explode('/',$var);
    
$anio=$cha[2];
    
$mes=$cha[1];
    
$dia=$cha[0];
    
$fechacambiada="$anio".'-'."$mes".'-'."$dia"
En donde $fecha: es la fecha que estas capturando del formulario y $fechacambiada es la fecha con el formato apto para guardar en la bd.

Existe otra función llamada substr, que también funciona muy bien solo que es algo más tediosa a mi parecer.

Esto es justo lo que necesitaba!!

Ahora de un formulario recojo una fecha en formato dd/mm/yyyy y con esa función me lo pasa a yyyy-mm-dd no?

En que campo guardo estos datos? porque el datetime tiene también HH:MM:SS


Muchas gracias a ti y a los otros dos compañeros que me aportaron también otras soluciones aunque no eran del todo lo que buscaba.


PD: No intentaba meter una fecha dd/mm/yyyy en un campo datetime, lo intentaba en uno de texto, pero me guardaba solo hasta el / ;S
__________________
Seamos realistas. Busquemos lo imposible. ;)
La forma de dar las gracias en este foro, es dando Karma, aunque a veces con un simple Gracias, basta.
  #7 (permalink)  
Antiguo 16/06/2010, 01:59
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años, 6 meses
Puntos: 12
Respuesta: Fechas y BBDD.

Recuerda usar Tipo de variable "DATE" y este campo se trabaja YY/MM/DD

Saludos :)
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.

Etiquetas: bbdd, 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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:15.