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/*
* calcula la diferencia entre años, meses, días y horas
*/
public function compareDatesHours($dateimput)
{
//comprueba si el formato de fecha de imput es un formato valido [Y-m-d H:i:s]
$this->check_date_time = $this->validateDatesHours($dateimput);
if($this->check_date_time === TRUE)
{
//recupera la ultima conexion al servidor
$this->sql =//la consulta
$this->result_conexion = $this->connect($this->sql);
{
$result = $valores;
}
//comprueba las diferencias entre años, meses, dias y horas.
// si hay una diferencia mayor de un dia y una hora puede continuar
if($result['diff_year'] == 0 AND $result['diff_month'] == 0 AND $result['diff_day'] >= 1 AND $result['diff_hour'] >= 1 )
{
return $result;
}
else {
return "no puede continuar";
}
}
}
//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.