Foros del Web » Programando para Internet » PHP »

Comparar dos fechas en la base de datos

Estas en el tema de Comparar dos fechas en la base de datos en el foro de PHP en Foros del Web. Que tal amigos, como les escribi en mi anterior post, aqui estoy de nuevo, con le detallito de la comparacion entre 2 fechas, quiero ahora ...
  #1 (permalink)  
Antiguo 28/09/2011, 14:34
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 9 meses
Puntos: 1
Comparar dos fechas en la base de datos

Que tal amigos, como les escribi en mi anterior post, aqui estoy de nuevo, con le detallito de la comparacion entre 2 fechas, quiero ahora comparar las fechas que voy ingresando, junto con la hora, estos datos yo los guardo en un campo de tipo datetime, para la fecha, el año queda fijo, lo que cambia son el mes y el dia, y la hora cambia constantemente, esta se maneja en formato 24 horas; lo que quiero es lo siguiente: que cuando ingrese una nueva fecha y hora, si estas son menores que la ingresada anteriormente que emita un mensaje de error diciendo que la fecha es invalida, igual que la hora, en caso de que sean menores que la anterior ingresada, que indique al usuario si quiere pasar al siguiente dia... Estuve leyendo y buscando informacion por google al respecto, pero no consegui mucha, espero me puedan ayudar amigos. Saludos...

Última edición por Bullet; 28/09/2011 a las 14:39
  #2 (permalink)  
Antiguo 29/09/2011, 04:53
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Comparar dos fechas en la base de datos

En MySQl mira: http://dev.mysql.com/doc/refman/5.5/...functions.html
En PHP mira: http://de.php.net/manual/es/datetime.sub.php
Salu2!
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 29/09/2011, 08:31
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 9 meses
Puntos: 1
Respuesta: Comparar dos fechas en la base de datos

Que tal amigo repara2, buen material el que me enviaste, lei sobre las funciones de mysql y las aplique en las fechas y asi resolvi el problemita que tenia, con esto no tengo problemas, en cuanto al material de php, entiendo lo del date_sub, pero hay algo que no entiendo, que es la clase DateInterval, que no entiendo como se uda, ya que aparecen una serie de caracteres antes de pasar la variable por la funcion Date_sub, podrias explicarme un poco eso, por favor??
  #4 (permalink)  
Antiguo 29/09/2011, 09:17
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Comparar dos fechas en la base de datos

La classe DateInterval es una clase que tiene métodos estáticos que proveen distintas funcionalidades. Para utilizar puedes mirar los ejemplos del manual, aunque si no tienes experiencia en POO puedes usar las funciones normales. Salu2!
__________________
Fere libenter homines, id quod volunt, credunt.
  #5 (permalink)  
Antiguo 29/09/2011, 12:00
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 9 meses
Puntos: 1
Respuesta: Comparar dos fechas en la base de datos

Que tal amigo repara2, bueno, comence haciendo algo como esto, pero no me esta funcionando como quiero, el codigo es le siguiente:

Código PHP:
<?php
require_once('config.php');
$guardada "SELECT fecha_nueva FROM `fechahora`  ORDER BY id DESC LIMIT 1";
$entrada $fechatotal;
$entrada_unix strtotime($entrada);
$guardada_unix strtotime($guardada);
echo 
$guardada;
echo 
$entrada;
echo 
$entrada_unix;
echo 
$guardada_unix;

if(
$entrada_unix $guardada_unix){
   echo 
'Hora Inválida';
   exit;
   }
else{
    echo 
'Hora Valida';
   }
?>
Le pase los echo para ver los valores de las variables y no me devuelve nada, y metiendo fechas maoyres o menores, me dice q son validas.
  #6 (permalink)  
Antiguo 29/09/2011, 13:20
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Comparar dos fechas en la base de datos

Pero es que $guardada es un string. Tienes que hacer la consulta, recorrerla, obtener el valor, y eso es lo que debes guardar en $guardada. No sé si tal vez lo que posteas es un ejemplo, salu2!
__________________
Fere libenter homines, id quod volunt, credunt.
  #7 (permalink)  
Antiguo 03/10/2011, 07:10
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 9 meses
Puntos: 1
Respuesta: Comparar dos fechas en la base de datos

Que tal amigos, espero hayan pasado un excelente fin de semana, tengan muy buenos dias, aqui vuelvo again con el problemita que tengo para comparar fechas, este es el codigo que tengo, les explico, cree un archivo q se llama f.php el cual hace el ingreso de los datos, aqui esta su codigo:

Código PHP:
f.php(Insercion de datos)
<?php
require_once('config.php');
include(
'valida_fecha.php');
$anho $_POST["anno"];
$mmdd $_POST["mmdd"];
$hhmm $_POST["hhmm"];
$fechatotal $_POST["anno"]."-".$_POST["mmdd"]." ".$_POST["hhmm"].":00";
$sql mysql_query("INSERT INTO fechahora (fecha_nueva) VALUES ('$fechatotal')"); //consultas
//$d = $fechatotal;
//echo $d;
?>
Y para la validacion, cree un archivo llamado, valida_fecha.php, aqui les dejo el codigo:

Código PHP:
valida_fecha.php
<?php
require_once('config.php');
$a mysql_query('SELECT fecha_nueva FROM  fechahora ORDER BY id DESC LIMIT 1');
$b mysql_fetch_assoc($a);
$c strtotime($b['fecha_nueva']);
echo 
$c;
?>
el programita es una prueba q estoy haciendo para luego aplicarla al sistema real, toma la fecha y hora separadas y las inserta en un mismo campo de la base, y con el otro script, la paso por strtotime() para convertirla en numero, el problema que tengo, es q necesito cargar el valor de $fechatotal, para compararla con la ultima fecha que traigo en la consulta, lo trate de mostrar con el script valida_fecha.php y me mostro un valor vacio, espero me puedan ayudar. Saludos!!

Etiquetas: usuarios
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:53.