Foros del Web » Programando para Internet » PHP »

comparar fechas con base de datos en php???

Estas en el tema de comparar fechas con base de datos en php??? en el foro de PHP en Foros del Web. ola a todos necesito una pequeña ayuda ... tenu 2 fechas una inicio y una fecha final ingresada en la base de datos y necesito ...
  #1 (permalink)  
Antiguo 16/11/2011, 08:52
 
Fecha de Ingreso: noviembre-2011
Mensajes: 11
Antigüedad: 12 años, 5 meses
Puntos: 0
comparar fechas con base de datos en php???

ola a todos necesito una pequeña ayuda ... tenu 2 fechas una inicio y una fecha final ingresada en la base de datos y necesito incremetar la fecha de inicio y compararla con la fecha final y idea es k cuando llege a fin de mes cambie de mes y se siga incrementado!!!!


porfa cualkier ayuda sirve lo necesito urgente !!!!

gracias
  #2 (permalink)  
Antiguo 16/11/2011, 10:05
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 10 meses
Puntos: 55
Respuesta: comparar fechas con base de datos en php???

aja pero que llevas hecho?

como estan las fechas en la BD en este formato dd-mm-yyyy o yyyy-mm-dd

de pronto puedes usar strtotime

y por ejemplo si quieres subir a $fecha_ini haces algo asi


$dia = strtotime('+'.$i.' day', strtotime($fecha_ini));

donde $i son los días que quieres subirle

espero que agarres la idea

saludos....
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O
  #3 (permalink)  
Antiguo 16/11/2011, 10:13
 
Fecha de Ingreso: noviembre-2007
Mensajes: 23
Antigüedad: 16 años, 5 meses
Puntos: 4
Respuesta: comparar fechas con base de datos en php???

No estaría de más que explicaras un poco para que te serviría este manejo de fechas. Quizás podamos ayudarte a mejorarlo y hacerlo más fácil.
  #4 (permalink)  
Antiguo 16/11/2011, 10:29
 
Fecha de Ingreso: noviembre-2011
Mensajes: 11
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: comparar fechas con base de datos en php???

Cita:
Iniciado por johhan16 Ver Mensaje
aja pero que llevas hecho?

como estan las fechas en la BD en este formato dd-mm-yyyy o yyyy-mm-dd

de pronto puedes usar strtotime

y por ejemplo si quieres subir a $fecha_ini haces algo asi


$dia = strtotime('+'.$i.' day', strtotime($fecha_ini));

donde $i son los días que quieres subirle

espero que agarres la idea

saludos....
primero gracias por responder ....mira las fechas estan en el formato yyyy-mm-dd pero sii algo asi abia visto ...pero lo k yo necesito es que se incremente dia a dia como por ejemplo en un for o while y quede algo asi
2011-10-01
2011-10-02
2011-10-03
2011-10-04
2011-10-05 , etc hasta llegar a final de mes y despues empieze desde el mes siguiente desde el 1 hasta fin de mes mira tengo algo como esto pero se me keda dando vueltas sin fin en el ciclo
Código PHP:
<?php
$fecha_ini
=$_POST['fecha'];
  
$fch=explode("/",$fecha_ini);
  
$fecha_ini=$fch[2]."-".$fch[1]."-".$fch[0];


  
$fecha_ter=$_POST['fecha1'];
  
$fch1=explode("/",$fecha_ter);
  
$fecha_ter=$fch1[2]."-".$fch1[1]."-".$fch1[0];

   
$conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion");
   
mysql_select_db("recursos_humanos",$conexion) or die("Problemas en la seleccion de la base de datos");
  
  
$query="SELECT * FROM movimientos INNER JOIN personal ON movimientos.RUT_EMPLE = personal.RUT_EMPLE WHERE movimientos.FECH_INI BETWEEN '$fecha_ini' AND '$fecha_ter'";
$result=mysql_query($query,$conexion) or die("Error: ".mysql_error());
if(
mysql_num_rows($result) > 0){
while(
$Rs=mysql_fetch_array($result)){
$fech_pas $Rs["FECH_INI"];
for(
$fech_pas$fech_pas <= $Rs["FECH_FIN"]; $fech_pas++){
if(
$fecha_ini <= $fech_pas && $fech_pas <= $fecha_ter){
echo 
$fech_pas."<br>";
}
}
}
}
?>
  #5 (permalink)  
Antiguo 16/11/2011, 10:35
 
Fecha de Ingreso: noviembre-2011
Mensajes: 11
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: comparar fechas con base de datos en php???

Cita:
Iniciado por lgruz Ver Mensaje
No estaría de más que explicaras un poco para que te serviría este manejo de fechas. Quizás podamos ayudarte a mejorarlo y hacerlo más fácil.
lo k pasa es k tenu k generar un informe sobre las personas k toman licencias, permisos, etc. la cosa es k cuando se ingrese un rango de fecha lo busque en la base de datos y muestre la cantidad de dias que tiene la persona sin contar los fines de semana y los festivos ... entonces para ello se ingresa una fecha de inicio k significa k comienza la licencia y una final donde termina y los fines de semana y festivos se ingresan en una tabla aparte .... entonces necesito k la fecha de inicio se vaya incrementado 1 en 1 has llegar a fin de mes y luego comienze desde el principio pero con el mes siguiente
  #6 (permalink)  
Antiguo 16/11/2011, 11:12
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 10 meses
Puntos: 55
Respuesta: comparar fechas con base de datos en php???

Yo tengo algo parecido a lo que necesitas, pero de nada vale entregártelo todo si no vas a aprender.

pero vuelvo y te coloco el ejemplo un poco mejor para que lo pruebes

Código PHP:
Ver original
  1. <?php
  2. $i= 0;
  3. $dia = 0;
  4.  
  5. $fecha_ini = '2011-11-16';
  6. $fecha_fin = '2011-11-26';
  7.  
  8. $fecha2 = strtotime($fecha_fin);
  9.  
  10.  
  11. while ($fecha2 > $dia) {
  12.  
  13. $dia = strtotime('+'.$i.' day', strtotime($fecha_ini));
  14.  
  15. $i++;
  16.  
  17. }
  18.  
  19. echo "Desde la Fecha: " .$fecha_ini." Hasta la Fecha: ".$fecha_fin." Hay: ".$i." Dias";
  20. ?>
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O
  #7 (permalink)  
Antiguo 16/11/2011, 11:47
 
Fecha de Ingreso: noviembre-2011
Mensajes: 11
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: comparar fechas con base de datos en php???

Cita:
Iniciado por johhan16 Ver Mensaje
Yo tengo algo parecido a lo que necesitas, pero de nada vale entregártelo todo si no vas a aprender.

pero vuelvo y te coloco el ejemplo un poco mejor para que lo pruebes

Código PHP:
Ver original
  1. <?php
  2. $i= 0;
  3. $dia = 0;
  4.  
  5. $fecha_ini = '2011-11-16';
  6. $fecha_fin = '2011-11-26';
  7.  
  8. $fecha2 = strtotime($fecha_fin);
  9.  
  10.  
  11. while ($fecha2 > $dia) {
  12.  
  13. $dia = strtotime('+'.$i.' day', strtotime($fecha_ini));
  14.  
  15. $i++;
  16.  
  17. }
  18.  
  19. echo "Desde la Fecha: " .$fecha_ini." Hasta la Fecha: ".$fecha_fin." Hay: ".$i." Dias";
  20. ?>
mira sii me resulto pero aun no lo k io kiero .... mira sii me compara bn pero me sale asi

2011-10-17
2011-10-17
2011-10-17
2011-10-13
2011-10-13
2011-10-13
2011-10-13
2011-10-13
2011-10-13
2011-10-25
2011-10-25
2011-10-25
2011-10-25
2011-10-25
2011-10-25
2011-10-25
2011-10-25
2011-10-25
2011-10-25
2011-11-10
2011-11-10
2011-11-10
2011-11-10
2011-11-10

y yo kiero k sean consecutivos y obviamente reemplaze las fechas k pusiste por las fechas k extraje desde la base de datos mira te dejo el codigo y me dices k falta o k falla

Código PHP:
<?php
$fecha_ini
=$_POST['fecha'];
  
$fch=explode("/",$fecha_ini);
  
$fecha_ini=$fch[2]."-".$fch[1]."-".$fch[0];


  
$fecha_ter=$_POST['fecha1'];
  
$fch1=explode("/",$fecha_ter);
  
$fecha_ter=$fch1[2]."-".$fch1[1]."-".$fch1[0];

   
$conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion");
   
mysql_select_db("recursos_humanos",$conexion) or die("Problemas en la seleccion de la base de datos");
  
  
$query="SELECT * FROM movimientos INNER JOIN personal ON movimientos.RUT_EMPLE = personal.RUT_EMPLE WHERE movimientos.FECH_INI BETWEEN '$fecha_ini' AND '$fecha_ter'";
$result=mysql_query($query,$conexion) or die("Error: ".mysql_error());
if(
mysql_num_rows($result) > 0){
while(
$Rs=mysql_fetch_array($result)){
$i0;
$dia 0;
$fech_pas $Rs["FECH_INI"];
$fech_fin $Rs["FECH_FIN"];
$fecha2 strtotime($fech_fin);
while (
$fecha2 $dia) {
$dia strtotime('+'.$i.' day'strtotime($fech_pas));
if(
$fecha_ini <= $fech_pas && $fech_pas <= $fecha_ter){
echo 
$fech_pas."<br>";
}
$i++;
}


}
}
mysql_close($conexion); 
?>
gracias y disculpa tantas molestias
  #8 (permalink)  
Antiguo 16/11/2011, 11:54
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 10 meses
Puntos: 55
Respuesta: comparar fechas con base de datos en php???

fijate haciendolo asi

Código PHP:
Ver original
  1. <?php
  2. $i= 0;
  3. $dia = 0;
  4. $fecha_ini = '2011-11-16';
  5. $fecha_fin = '2011-11-26';
  6.  
  7. $fecha2 = strtotime($fecha_fin);
  8.  
  9. while ($fecha2 > $dia) {
  10. $dia = strtotime('+'.$i.' day', strtotime($fecha_ini));
  11. echo date('d/m/Y', $dia)."<br>";
  12. $i++;
  13. }
  14.  
  15. echo "Desde la Fecha: " .$fecha_ini." Hasta la Fecha: ".$fecha_fin." Hay: ".$i." Dias";
  16. ?>

le agrgue una linea para imprimir la fecha y por lo menos a mi me funciona sin problemas, lo que yo observo de tu codigo es que eso lo estas metiendo dentro de un while (Osea pueden haber varias Fecha Inicio y Fecha Fin).

lo mas seguro es que de alli parte el problema
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O
  #9 (permalink)  
Antiguo 16/11/2011, 12:03
 
Fecha de Ingreso: noviembre-2011
Mensajes: 11
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: comparar fechas con base de datos en php???

Cita:
Iniciado por johhan16 Ver Mensaje
fijate haciendolo asi

Código PHP:
Ver original
  1. <?php
  2. $i= 0;
  3. $dia = 0;
  4. $fecha_ini = '2011-11-16';
  5. $fecha_fin = '2011-11-26';
  6.  
  7. $fecha2 = strtotime($fecha_fin);
  8.  
  9. while ($fecha2 > $dia) {
  10. $dia = strtotime('+'.$i.' day', strtotime($fecha_ini));
  11. echo date('d/m/Y', $dia)."<br>";
  12. $i++;
  13. }
  14.  
  15. echo "Desde la Fecha: " .$fecha_ini." Hasta la Fecha: ".$fecha_fin." Hay: ".$i." Dias";
  16. ?>

le agrgue una linea para imprimir la fecha y por lo menos a mi me funciona sin problemas, lo que yo observo de tu codigo es que eso lo estas metiendo dentro de un while (Osea pueden haber varias Fecha Inicio y Fecha Fin).

lo mas seguro es que de alli parte el problema
mmmm...creo k tienes razon ... pero si te das cuenta en el codigo k te deje io ingreso un rango de fecha entonces por ejemplo si io ingreso desde el 01/10/2011
hasta el 31/10/2011 solo me muestre los registros de ese rango asi como tambn si io ingreso un rango mas grande como desde el 01/10/2011 hasta el 03/11/2011 muestre todos los datos dentro de ese rango ....
  #10 (permalink)  
Antiguo 16/11/2011, 12:11
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 10 meses
Puntos: 55
Respuesta: comparar fechas con base de datos en php???

claro el código que te coloque hace eso , puede saltar tanto de meses como de años

por ejemplo prueba

Código PHP:
Ver original
  1. <?php
  2. $i= 0;
  3. $dia = 0;
  4. $fecha_ini = '2011-12-26';
  5. $fecha_fin = '2012-01-06';
  6.  
  7. $fecha2 = strtotime($fecha_fin);
  8.  
  9. while ($fecha2 > $dia) {
  10. $dia = strtotime('+'.$i.' day', strtotime($fecha_ini));
  11. echo date('d/m/Y', $dia)."<br>";
  12. $i++;
  13. }
  14.  
  15. echo "Desde la Fecha: " .$fecha_ini." Hasta la Fecha: ".$fecha_fin." Hay: ".$i." Dias";
  16. ?>

otra cosa también es ver que en tu BD no tengas fechas repetidas, creo que debes mejorar esa consulta e irla haciendo por empleado, asi no tendras fechas repetidas porque un empleado no puede pedir un permiso hoy 2 veces
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O
  #11 (permalink)  
Antiguo 16/11/2011, 12:24
 
Fecha de Ingreso: noviembre-2011
Mensajes: 11
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: comparar fechas con base de datos en php???

Cita:
Iniciado por johhan16 Ver Mensaje
claro el código que te coloque hace eso , puede saltar tanto de meses como de años

por ejemplo prueba

Código PHP:
Ver original
  1. <?php
  2. $i= 0;
  3. $dia = 0;
  4. $fecha_ini = '2011-12-26';
  5. $fecha_fin = '2012-01-06';
  6.  
  7. $fecha2 = strtotime($fecha_fin);
  8.  
  9. while ($fecha2 > $dia) {
  10. $dia = strtotime('+'.$i.' day', strtotime($fecha_ini));
  11. echo date('d/m/Y', $dia)."<br>";
  12. $i++;
  13. }
  14.  
  15. echo "Desde la Fecha: " .$fecha_ini." Hasta la Fecha: ".$fecha_fin." Hay: ".$i." Dias";
  16. ?>

otra cosa también es ver que en tu BD no tengas fechas repetidas, creo que debes mejorar esa consulta e irla haciendo por empleado, asi no tendras fechas repetidas porque un empleado no puede pedir un permiso hoy 2 veces
noo sii tenias razon yo taba aciendo una cosa mal ...bueno muxas gracias por la paciencia y la ayuda saludos!!!
  #12 (permalink)  
Antiguo 16/11/2011, 12:32
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 10 meses
Puntos: 55
Respuesta: comparar fechas con base de datos en php???

Bueno estamos a la orden siempre que se pueda


Saludos....
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O
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 09:55.