Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Comparar fechas dentro de un while

Estas en el tema de Comparar fechas dentro de un while en el foro de PHP en Foros del Web. Buenos días a todos Vengo por ideas: Tengo 2 tablas: personas |id|Nombre|Ciudad| Ciudades |id|Ciudad|Fecha1|Fecha2| Lo que estoy haciendo es: consulto la tabla personas y me ...
  #1 (permalink)  
Antiguo 14/02/2017, 10:01
 
Fecha de Ingreso: abril-2015
Mensajes: 10
Antigüedad: 9 años
Puntos: 0
Comparar fechas dentro de un while

Buenos días a todos

Vengo por ideas:

Tengo 2 tablas:

personas
|id|Nombre|Ciudad|

Ciudades
|id|Ciudad|Fecha1|Fecha2|

Lo que estoy haciendo es: consulto la tabla personas y me da n Número de registros ya que busca a todas las personas con el nombre "Mauricio" despues al obtener los resultados voy a la tabla Ciudades y busco todas las ciudades a las que pertenece Mauricio.

Esto lo hago para comparar Fecha1 y Fecha 2 y de ahí hacer algunas cosillas dependiendiendo de las fechas.

Lo que necesito es una idea de como al final comparar cada registro encontrado en personas->ciudades if(fecha1 > fecha2){} y de ahí comparar que sea TRUE

Por ejemplo

|id|Nombre|Ciudad|
|1 |Mauricio|Cuernavaca|
|5 |Mauricio|Cuautla|
|34|Mauricio|Zacatepec|

|id|Ciudad|Fecha1|Fecha2|
|1|Cuernavaca|01-02-2017|02-02-2017|
|3|Zacatepec|03-02-2017|04-02-2017|
|8|Cuautla|05-02-2017|06-02-2017|

Lo que a final quiero hacer es que el usuario podrá ver cierta información si y siempre si la fecha actual se encuentre dentro del rango que su ciudad lo permite, cuando es solo un registro lo tengo fácil, pero como podría comparar las N ciudades en las que aparezca y si al menos una de ella es valida permita mostrar la información?

Espero poder contar con su apoyo e ideas.

Les mando saludos
  #2 (permalink)  
Antiguo 14/02/2017, 11:06
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: Comparar fechas dentro de un while

Si tu problema está en solo comparar fechas, lo único que tienes que hacer es convertir las a numeros con strtotime().

Código PHP:
if(strtotime($fecha1) > strtotime($fecha2)) 
Un saludo
  #3 (permalink)  
Antiguo 15/02/2017, 10:19
 
Fecha de Ingreso: abril-2015
Mensajes: 10
Antigüedad: 9 años
Puntos: 0
Respuesta: Comparar fechas dentro de un while

Si, en este caso el problema no es comparar las fechas, sino como comparar la de todos los resultados obtenidos?

Código PHP:
$finicio strtotime($selecciona_periodou['finicio']);
$ffin strtotime($selecciona_periodou['ffin']);    
$hoy =  strtotime(date("Y-m-d H:i:00",time()));        
        if(
$hoy >= $finicio && $hoy <= $ffin){
            
        }else{
        
$periodo "index.php?periodo=1";

        
header("Location: "$periodo); 
        exit;
        }
}
//Si está dentro del rango imprime algúna información:
?> 
  #4 (permalink)  
Antiguo 15/02/2017, 11:09
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Comparar fechas dentro de un while

Utiliza un foreach para iterar el conjunto de datos
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 15/02/2017, 18:40
 
Fecha de Ingreso: abril-2015
Mensajes: 10
Antigüedad: 9 años
Puntos: 0
Respuesta: Comparar fechas dentro de un while

Pensé en el foreach, pero
Código PHP:
foreach ($selecciona_personas['Ciudad'] as $value) {
//hago mi consulta ahora por cada ciudad $selecciona_periodou = SELECT.... WHERE Ciudad = $value

//entonces en mi mente está hacer otro foreach ahora para obtener los valores de las ciudades
foreach($lasciudades as $fechas) { 
// Acá es donde ya obtengo las dos fechas de cada registro
}


Lo que no entiendo es como puedo comparar cada registro y que si al menos uno de los 2,3,4 etc. que pudieran aparecer es TRUE haga algo.

Será que tengan más ideas?

Saludos
  #6 (permalink)  
Antiguo 15/02/2017, 20:09
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Comparar fechas dentro de un while

Porqué no lo haces desde la consulta?

Código MySQL:
Ver original
  1. SELECT * FROM ciudades WHERE condicion_usuario AND fecha1 <= NOW() AND fecha2 >= NOW()
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 16/02/2017, 10:09
 
Fecha de Ingreso: abril-2015
Mensajes: 10
Antigüedad: 9 años
Puntos: 0
Respuesta: Comparar fechas dentro de un while

Excelente idea! hacerlo desde MySQL.

Lo que hice fue buscar con JOIN y así solo obtengo el resultado de la condición deseada.

Gracias a todos por sus aportaciones.

Código MySQL:
Ver original
  1. SELECT * FROM personas JOIN ciudades ON personas.ciudad=ciudades.ciudad WHERE personas.Nombre= "Nombre" AND fecha1 <= now() AND fecha2 > now()

Etiquetas: fecha, registro, usuario
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 11:45.