Да, код правильный, вы можете попробовать его, просто имея меньшее временное ограничение.
if(time() => ($_SESSION['now'] + 900)){
Просто чтобы быть уверенным.
Попробуйте посмотреть, какие переменные выводятся на печать.
<?php
session_start();
if(!isset($_SESSION['now'])){
$_SESSION['now'] = time();
}
if(time() > ($_SESSION['now'] + 10)){
echo date("d.m.Y H:i", time())."<br />";
echo date("d.m.Y H:i", $_SESSION['now'])."<br />";
echo "15 minutes have passed";
} else {
echo date("d.m.Y H:i", time())."<br />";
echo date("d.m.Y H:i", $_SESSION['now'])."<br />";
echo "waiting";
}
?>