Para destruir la cookie .. debes de indicar una fecha "pasada" .. Ahí eso lo hace time()-3600 .. osese, la hora actual - (menos) 3600 segundos ... El caso es que no sea time() sólo ...
Si quieres una cookie que no expire . No uses el parámetro de tiempo de expiración (el tercero .. eso de time()-3600 en ese caso)
Sólo recuerda que la cookie estará "destruida" (o modificado su valor o creada incluso) cuando hagas la próxima petición al servidor .. Osese, no podrías hacer esto por ejemplo y esperar que el isset() te diga que la cookie ya no existe:
Código PHP:
<?
setcookie("nombre","valor",time()-3600);
if (isset($_COOKIE['nombre_cookie'])){
echo "está creada la cookie";
} else {
echo "No está creada la cookie";
}
?>
La "petición" al servidor se refiere a una recarga de página .. o a un link que ejecutes . o un formulario que envies .. o una redirección (de cualquier tipo y hasta si quieres sobre la misma página) ..
Te recomiendo que leas el manual oficial de PHP en el tema setcookie() .. ahí explica todo lo que te acabo de comentar.
Un saludo,