Exactamente la ultima opcion es la correcta.
En la funcion donde verificas si el usuario inicio sesion haces una comparacion de fechas:
Código PHP:
if(strtotime('2009-01-23') <= time())
die('Expiro el tiempo para ver el contenido');
Obviamente puedes obtener la fecha de base de datos y ya en timestamp, pero eso depende del procedimiento que utilices para dar el acceso.