Foros del Web » Programando para Internet » PHP »

Comparación Fechas y horas entre PHP y MYSQL: comparación variable

Estas en el tema de Comparación Fechas y horas entre PHP y MYSQL: comparación variable en el foro de PHP en Foros del Web. Estoy trabajando sobre una implementación a una app para limitar el uso de la app según el tiempo. Esto es: si el usuario realiza una ...
  #1 (permalink)  
Antiguo 21/11/2013, 17:58
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Comparación Fechas y horas entre PHP y MYSQL: comparación variable

Estoy trabajando sobre una implementación a una app para limitar el uso de la app según el tiempo. Esto es: si el usuario realiza una determinada actividad, hasta pasada una hora no puede volver a realizar la misma actividad.

El problema es con las fechas y horas.

He entendido bien las funciones de fecha en PHP y MYSQL, creo :S

Pero pensando en que el administrador del sitio pudiera establecer la limitación de tiempo a su antojo tengo que pensar la manera de comparar la diferencia entre la fecha (año, mes y día) y la hora (hora, minutos y segundos) establecida por el administrador del servidor y la última vez que se conectó el usuario.

De manera que el código resultante es este (he omitido la parte de la consulta a MYSQL para no infringir las normas), está escrito en local y es a modo de prueba, por lo tanto no es muy bonito :) ni pensado para seguir una estrategia de eficiencia alguna, simplemente es para que funcione

Código PHP:
Ver original
  1. /*
  2.      * calcula la diferencia entre años, meses, días y horas
  3.      */
  4.     public function compareDatesHours($dateimput)
  5.     {
  6.         //comprueba si el formato de fecha de imput es un formato valido [Y-m-d H:i:s]
  7.         $this->check_date_time  =   $this->validateDatesHours($dateimput);
  8.         if($this->check_date_time   === TRUE)
  9.         {
  10.             //recupera la ultima conexion al servidor
  11.             $this->sql  =//la consulta
  12.                
  13.             $this->result_conexion  =   $this->connect($this->sql);
  14.            
  15.             while($valores  =   mysqli_fetch_array($this->result_conexion))
  16.             {
  17.                 $result =   $valores;
  18.             }
  19.            
  20.             //comprueba las diferencias entre años, meses, dias y horas.
  21.             // si hay una diferencia mayor de un dia y una hora puede continuar
  22.             if($result['diff_year'] == 0 AND $result['diff_month']  ==  0   AND $result['diff_day'] >= 1 AND $result['diff_hour'] >= 1 )
  23.             {
  24.                 return $result;
  25.             }
  26.             else {
  27.                 return "no puede continuar";
  28.                
  29.             }
  30.            
  31.            
  32.            
  33.         }  
  34.     }
  35. //en la consulta SQL obtengo las diferencias entre la última vez que el usuario se conectó y la fecha pasada por valor a este método

¿A alguien se le ocurre alguna función nativa de PHP que realice este trabajo para ahorrar líneas y ganar eficiencia?

Simplemente una referencia de funciones y yo ya pienso cómo hacerlas trabajar :D

Es que leyendo el manual de PHP no se me ha ocurrido una manera mejor para realizar esto.
__________________
Ayúdame a hacerlo por mi mismo.
  #2 (permalink)  
Antiguo 21/11/2013, 18:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Comparación Fechas y horas entre PHP y MYSQL: comparación variable

¿Estás leyendo el manual y no encuentras la sección que habla sobre funciones de fecha y hora?

Vaya contradicción me parece.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 22/11/2013, 04:30
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Comparación Fechas y horas entre PHP y MYSQL: comparación variable

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Estás leyendo el manual y no encuentras la sección que habla sobre funciones de fecha y hora?

Vaya contradicción me parece.
:D vi las funciones, pero no vi ninguna que me fuera de utilidad. Por ejemplo, la de comparación de fecha date_diff no me sirve, porque es para comparar fechas, no horas. O eso es lo que vi en el ejemplo. No pude dar un formato date_create de solamente horas, tenía que ser sí o sí una fecha o una fecha y hora:minutos:segundos.

Así que, resolví la comparación de las fechas y horas con la consulta MYSQL, es decir, comparé la fecha y hora locales con la fecha y hora de la última conexión del usuario y después, el resultado de esa diferencia lo comparo con cada parte establecida por el admin.

No veo que haya alguna función que haga este trabajo :S todas operan con fecha completa año-mes-día o con hora completa (ahí ya no hay inconveniente). Pero no me sirve con fecha completa, puesto que el admin establecerá un limite con el mismo formato de Y-m-d H:i:s pero el año puede ser perfectamente 0001, el mes 00 y el día 01 y la hora 01:00:00 entonces ahí ya no me sirve la comparación por fechas, porque me diría que el formato a comparar no es válido.

No se si me expliqué bien :S y si es así puede explicarlo otra vez.

Gracias por tu ayuda! :D
__________________
Ayúdame a hacerlo por mi mismo.

Etiquetas: fecha, horas, mysql, sql, variable
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 10:29.