Удалить один час от времени ()

У меня есть онлайн-система, и мне нужно, чтобы пользователь вышел из системы после 60 минут бездействия.

Теперь текущий код работает на 30 минут меньше.

    $cut = time() - 30*60;

Теперь я бы подумал, что следующее уберет час, поэтому время ожидания составляет 60 минут.

$cut = time() - 60*60;

Это полный код, который происходит. После 60 минут бездействия мне нужно, чтобы человек вышел из системы.

// Time out Users 60 minutes
$last = $_SESSION['time'];
$cut = time() - 60*60;

if ($last < $cut)
{
session_destroy();

$get = $_GET;
$location = 'login.php?timeout=true';
foreach($get as $key => $item)
{
$location .= '&'.$key."=".$item;
}
header('Location: '.$location);
}
else
$_SESSION['time'] = time();

Теперь этот код не работает, я не думаю.

1

Решение

используйте strtotime (), это может пригодиться

объявляйте сессию таким образом каждый раз, когда пользователь делает запрос.

$_SESSION['time'] = strtotime("now");

кодирующая часть

$last = $_SESSION['time'];

$cut = strtotime("-60 min");if ($last < $cut)  //can also use strtotime("-60 min") directly
{
// session_destroy();
unset($_SESSION['time']);  //use inorder to delete only that session$get = $_GET;
$location = 'login.php?timeout=true';
foreach($get as $key => $item)
{
$location .= '&'.$key."=".$item;
}
header('Location: '.$location);
}
else
$_SESSION['time'] = strtotime("now");

убедитесь, что сессия начинается на каждой странице.

работает отлично…

1

Другие решения

Если вы просто хотите увидеть, прошло ли больше часа с $_SESSION['time'] истек, просто добавьте час к этому времени и сравните его с сейчас. Если оно меньше, чем сейчас, то больше часа назад.

$now  = new DateTime();
$last = new DateTime('@' . $_SESSION['time']);
$last->modify('+1 hour');
if ($last < $now) {

}

Или вычтите час и посмотрите, будет ли он еще больше, чем $_SESSION['time']:

$now  = new DateTime();
$now->modify('+1 hour');
$last = new DateTime('@' . $_SESSION['time']);
if ($last < $now) {

}
1

Вам необходимо перевести время, указанное ниже

$cut = time();
$lesstime = date('YOUR TIME FORMATE',strtotime($cut,"-1 hours"));
0

Попробуйте с кодом ниже:

$cut = time() - 60*60;

заменить на ниже

$cut = strtotime('-1 hour');
0
По вопросам рекламы [email protected]