---
title: "Hjälp med ett script"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/139969-hjälp-med-ett-script"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "ToHa57"
published: "2005-12-28T08:30:25.000Z"
updated: "2005-12-30T09:25:46.000Z"
replies: 5
views: 433
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/139969-hjälp-med-ett-script"
---

# Hjälp med ett script

## #1 — ToHa57, 2005-12-28T08:30Z

Hej Grabbar (och tjejer, att inte förglömma)

Jag skulle behöva ett script till min hemsida, som jag inte själv klarar av.

När du öppnar sidan ska den slumpmässigt välja ett datum mellan i dag och 30 dagar framåt, och därefter visa en nerräkning till det datumet.
Gärna att det går att lämna sidan, och den "kommer ihåg" denna inställning fram tills datumet passerats.

Finns det någon som kan lösa detta ??

Tacksam för alla försök

Permalänk: https://www.webforum.nu/p/139969

## #2 — Peter S, 2005-12-28T17:12Z

Välkommen till wF!  :) 

Här får du något att bita i:

```
<script type="text/javascript">
/********************************************
            script.webforum.nu
      Cookiebibliotek skrivet av spango
           <gustaf-c@dsv.su.se>
Sprid gärna detta script till nära och kära!
        (men lämna kvar dessa rader)
********************************************/

// Cookieklassen

function Cookie(name, value, expires, domain, path, secure){
	this.name    = name;
	this.value   = value;
	this.expires = expires;
	this.domain  = domain;
	this.path    = path;
	this.secure  = secure;
	
	}

// Metoder för cookieklassen

function set(){
	var cookiestr = escape(new String(this.name)) + "=" + escape(new String(this.value));
	if(this.expires) cookiestr += "; Expires=" + this.expirationString();
	if(this.domain)  cookiestr += "; Domain=" + this.domain;
	if(this.path)    cookiestr += "; Path=" + this.path;
	if(this.secure)  cookiestr += "; Secure";
	document.cookie = cookiestr;
	}

function expirationString(){
	var ex = this.expires;
	if(typeof ex == typeof "string") return ex;
	if(typeof ex == typeof 1){
		var msPerDag = 1000 * 60 * 60 * 24;
		ex = new Date();
		ex.setTime(ex.getTime() + (msPerDag * this.expires));
		}
	return ex.toUTCString ? ex.toUTCString() : ex.toGMTString();
	}

function setDomainToCurrent(){
	this.domain = self.location.host;
	}

function setPathToCurrent(){
	var pth = self.location.pathname.substr(self.location.pathname.indexOf  ("/"));
	if(!pth) pth = "/";
	else pth = pth.substring(0, pth.lastIndexOf("/") + 1);
	this.path = pth;
	}

// Allmäna funktioner

function getCookie(name, alt){
	if(!alt) alt = "";
	name = escape(name) + "=";
	if(document.cookie.indexOf(name) == -1) return alt;
	
	var kaka = document.cookie.substr(document.cookie.lastIndexOf(name));
	kaka = kaka.substr(name.length);
	var slut = (kaka.indexOf(';') == -1) ? kaka.length : kaka.indexOf(';');
	kaka = kaka.substring(0, slut);
	
	return unescape(kaka);
	}

function deleteCookie(name, path){
	var cookiestr = escape(name) + "=_; Expires=Thursday, 01-Jan-1970 00:00:00 GMT";
	if(path) cookiestr += "; Path=" + path;
	document.cookie = cookiestr;
	}

function getAllCookieNames(){
	var ac = document.cookie.split(" ");
	var allCookies = new Array();
	for(var i = 0; i < ac.length; i++){
		var tmp = ac[ i].split("=");
		allCookies[ i] = unescape(tmp[0]);
		}
	return allCookies;
	}

// Lägg till metoder

Cookie.prototype.set                = set;
Cookie.prototype.expirationString   = expirationString;
Cookie.prototype.setDomainToCurrent = setDomainToCurrent;
Cookie.prototype.setPathToCurrent   = setPathToCurrent;

// Statiska metoder

Cookie.get         = getCookie;
Cookie.remove      = deleteCookie;
Cookie.getAllNames = getAllCookieNames;
</script>

<script type="text/javascript">

var endDate = new Date(Cookie.get("countdown")),
    elm     = null;

window.onload = function(){
  elm = document.getElementById("countdown");

  if (!endDate.valueOf()){
    var tmpDate = new Date();
    tmpDate.setDate(tmpDate.getDate() + Math.floor(Math.random() * 31));

    new Cookie("countdown", tmpDate, "Wednesday, 01-Jan-2014 00:00:00 GMT").set();
    endDate = tmpDate;
  }

  countdown();
}

function countdown(){
  var now  = new Date(),
      diff = endDate - now,
      d    = Math.floor(diff / 3600000 / 24),
      h    = Math.floor((diff / 3600000 / 24 - d) * 24),
      m    = Math.floor((((diff / 3600000 / 24 - d) * 24) - h) * 60),
      s    = Math.floor(((((((diff / 3600000 / 24 - d) * 24) - h) * 60) - m) * 60));

  if (diff <= 0){
    Cookie.remove("countdown");
    elm.innerHTML = "";
    return;
  }

  elm.innerHTML = "Tid kvar: " + d + "d" + h + "h" + m + "m" + s + "s";

  window.setTimeout("countdown()", 960);
}

</script>

<span id="countdown"></span>
```

Permalänk: https://www.webforum.nu/p/1736450

## #3 — ToHa57, 2005-12-29T10:35Z

Tack för hjälpen.. ser bra ut....
Ska kolla lite på det så jag vet hur det funkar. ihop med min sida altså..

Permalänk: https://www.webforum.nu/p/1736633

## #4 — ToHa57, 2005-12-30T00:48Z

Hej Peter

Allt fungerar som beräknat, ¨å jag tackar dig sååååå mycket. men får en gammal fabror ställa en dum fråga (jag håller på att lära mig)
Hur gör man för att f ex ställa in 7 dagar istället för 30...

Tur att det finns vänner på nätet som kan hjälpa en "gamling"

Permalänk: https://www.webforum.nu/p/1736930

## #5 — Jojoxx, 2005-12-30T06:40Z

Ändra på denna rad:

```
tmpDate.setDate(tmpDate.getDate() + Math.floor(Math.random() * [i][b]7[/b][/i]));
```

 :)

Permalänk: https://www.webforum.nu/p/1736940

## #6 — ToHa57, 2005-12-30T09:25Z

:)   :)   :) 

Tack..... Ni är änglar på denna sidan..

Hoppas jag får återkomma någongång igen..

kram till Er alla och ett gott nytt år

ToHa57

Permalänk: https://www.webforum.nu/p/1736956

---

Tråden på webben: https://www.webforum.nu/amne/javascript/139969-hjälp-med-ett-script
