çıkarma işlemini parantez içerisine alırsan 0 değeri vericektir
ben tüm hareketleri yazayım sana

jquery.js sistemine dahil et

js kodun
<script type="text/javascript" src="/jquery.js"></script>
<script type="text/javascript">
<!--
function sureHesap(){ 
	var sc = 'sure=kontrol'; //guvenlik icin rasgele bir session degerle koruyabilirsin
	$.ajax({type: 'POST', url: 'sure.php', data: sc, success: function(sure) {$('#sureHesap').html(sure);}});	
}
setTimeout(sureHesap(),100000); //10000 = 1 saniye
//-->
</script>

Sitene eklemen gereken kod
<?php
//ziyaretci ilk girdiğindeki zamani aliyorum
$_SESSION['giris'] = date('U');
echo '<div id="sureHesap"><!-- işlem --></div>'
?>
ajax isteği göndereceğin sure.php dosyası içeriği
<?php
//sure.php dosyasi kodu

$ip = $_SERVER['REMOTE_ADDR'];
$sure = (date('U') - $_SESSION['giris']);

if($sure >= 300){
	$oku = unserialize(file_get_contents("ip.txt"));
	$oku[$ip] = $sure;
	$yaz = serialize($oku);	

$file = fopen ( 'ip.txt' , 'w' );
if($file){//dosya acildi ise
	if(fputs($file,$yaz)){
		//yazma basarili
	}else {
		//yazma basarisiz chmod kontrol et
	}
}	
fclose($file);
}


?>
deneme fırsatım olmadı kodu biraz inceleyip kullanabilirsin hata verirse yazarsın bakarız

edit: süre kontrolunu değiştirdim