Código HTML:
<html>
<head>
<title>10 MONEDAS</title>
<script type="text/javascript">
var COOKIE_NAME = "fecha_conexion";
function getCookie(cname) {
var name = cname + "=",
ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1);
if (c.indexOf(name) === 0) return c.substring(name.length, c.length);
}
return "";
}
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toUTCString();
alert(expires);
document.cookie = cname + "=" + cvalue + "; " + expires;
}
function format(millis) {
var hours = Math.floor(millis / 36e5),
mins = Math.floor((millis % 36e5) / 6e4),
secs = Math.floor((millis % 6e4) / 1000);
return hours+"h "+mins+"m "+secs+"s";
}
function comprobarFecha() {
var fecha_actual = new Date(),
fecha_ultima = Date.parse(getCookie(COOKIE_NAME)),
intervalo_min = 1000 * 60 * 60 * 24; // 24h = 1000ms * 60s * 60m * 24h
/* Si hay guardada una fecha, comprobamos si la duración es mayor a 24h */
if (fecha_ultima) {
var intervalo = fecha_actual - fecha_ultima; // Resultado en milisegundos
if (intervalo < intervalo_min) {
// Si el resultado es menor, no ha pasado las 24horas
alert("Lo siento :C,\nTe faltan " + format((intervalo_min-intervalo)) +" para volverlo a intentar");
return false;
}
}
setCookie(COOKIE_NAME, fecha_actual.toString(), 1);
alert("AQUI TIENES TUS 10 MONEDAS! \nEs tu dinero, no lo despilfarres."); // Ha pasado las 24 horas o es la primera vez que se entra
return true;
}
</script>
</head>
<body>
<center style="margin-top:100px;">
<h3> Tienes derecho a 10 monedas diarias </h3>
<input type="button" value="Dame la pasta!" onclick="javascript:comprobarFecha();">
<p>
Si borras o modificas la cookie, volverás a tener las monedas. Por lo que no es un método seguro.<br/>
Cada navegador podrá tener 1 cookie por lo que no es muy efectivo.
</p>
<p>
Por cierto: un error, provoca que en algunos navegadores las cookies no se guarden, cuando lo ejecutamos desde local.
</p>
</center>
</body>
</html>