Como fazer uma sessão PHP expirar após determinado tempo?

No PHP, podemos usar a função session_set_cookie_params. Ela define parâmetros do cookie utilizado na sessão. Essa função precisa ser chamada antes que session_start() seja chamada.

Por exemplo, se você quiser definir que a sessão dure apenas 10 minutos, você pode fazer da seguinte forma:

$lifetime = 10 * 60;
session_set_cookie_params($lifetime);
session_start();

Se desejar usar outros valores, sugiro utilizar a função strtotime, definindo 0 no segundo argumento. Ela facilita bastante a definição do tempo da sessão.

Por exemplo, vamos definir que a validade do cookie da sessão abaixo é limitado a 40 minutos.

Podemos fazer assim:

$lifetime = strtotime('+40 minutes', 0);
session_set_cookie_params($lifetime);
session_start();