---
title: "Vecka --> datum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/87980-vecka-datum"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Asa"
published: "2003-10-08T11:57:20.000Z"
updated: "2003-10-09T12:44:38.000Z"
replies: 24
views: 572
page: 1
pages: 2
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/87980-vecka-datum"
---

# Vecka --> datum

_Sida 1 av 2._

## #1 — Asa, 2003-10-08T11:57Z

Finns det nåt javascript som listar alla veckor i en seletclista och när man väljer en vecka så visar  selectruta 2 datumen just den veckan.

Kan detta fixas?

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

## #2 — nitro2k01, 2003-10-08T13:05Z

En bra sida med färdiga skript heter dynamicdrive.com. Där finns det en lista med skript kallad [Klockor och kalendrar](http://www.dynamicdrive.com/dynamicindex6/). 
Denna kanske passar dig? <http://www.dynamicdrive.com/dynamicindex6/dcalendar2.htm> 
Jag orkade inte skriva ihop nån kod själv så...

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

## #3 — Asa, 2003-10-08T13:09Z

Okej, ska kolla lite där.

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

## #4 — Asa, 2003-10-08T14:23Z

Men det verkade dock inte finnas det jag söker. Kan ej bygga om den kalendern t.ex så den blir som jag vill ha.

Nån som har tid och kan hjälpa mig?

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

## #5 — Asa, 2003-10-08T18:34Z

Finns nån sådan funktion över huvudettaget?

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

## #6 — tostewe, 2003-10-08T19:04Z

<http://www.vecka.nu/>

Kanske kan hjälpa dig....

//Fraggel

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

## #7 — Asa, 2003-10-08T19:18Z

Jag vill lista alla veckor i en selectruta..... Sen när jag valt en vecka ska det i selectrutan nr 2 visas datumen den veckan.. Förstår ni inte? Utan att sidan laddas om.

Jag vet att det går å fixa me asp att sidan laddas om men vill gärna ha utan.

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

## #8 — Jojoxx, 2003-10-08T19:20Z

```
<form name="myform">
<select name="week" onChange="updateDates(this.form);"></select>
<select name="dates"></select>
</form>

<script type="text/javascript">
Date.prototype.getWeek=function(){
	var nywd=(new Date(this.getFullYear(),0,1).getDay()==0)?7:new Date(this.getFullYear(),0,1).getDay();
	var w=Math.ceil((this.getTime()+nywd*86400000-new Date(this.getFullYear(),0,1).getTime())/(604800000))
	if(nywd>4){w--;}
	if(w==0){ return new Date(this.getFullYear()-1,11,31).getWeek()}
	if(w==53 && new Date(this.getFullYear()+1,0,1).getDay()<=4){w=1}
	return w
}
var thisWeek=new Date().getWeek();
var weekdays=["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"];
var i=0; var datesInWeek=new Array(); datesInWeek[0]=new Array();
document.myform.week[document.myform.week.length]=new Option(new Date().getWeek(),new Date().getWeek());
for(var n=0;new Date(new Date().getTime()+n*86400000).getFullYear()==new Date().getFullYear();n++){
	var d=new Date(new Date().getTime()+n*86400000);
	datesInWeek[i][datesInWeek[i].length]=d;
	if(d.getWeek()!=thisWeek){
		document.myform.week[document.myform.week.length]=new Option(d.getWeek(),d.getWeek());
		i++;
		datesInWeek[i]=new Array();
	}
	thisWeek=d.getWeek();
}
function updateDates(obj){
	obj.dates.length=0;
	for(var n=0;n<datesInWeek[obj.week.selectedIndex].length;n++){
		var d=datesInWeek[obj.week.selectedIndex][n];
		obj.dates[n]=new Option(weekdays[d.getDay()]+" "+d.getDate()+"/"+(d.getMonth()+1),weekdays[d.getDay()]+" "+d.getDate()+"/"+(d.getMonth()+1));
	}
}
updateDates(document.myform);
</script>
```

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

## #9 — Asa, 2003-10-08T19:28Z

Supermycket tack Jojoxx. Precis det jag ville ha. Hur kompartibel är denna kod då? Funkar i de flesta webbläsare?

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

## #10 — Jojoxx, 2003-10-08T19:36Z

Det är rättså kompatibelt skulle jag tro. Funkar i IE (5 och senare skulle jag tro), Mozilla och Opera (senare versioner, vet inte exakt från vilken)

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

## #11 — Asa, 2003-10-08T19:37Z

Så bra! Tackar för dina svar :)

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

## #12 — Asa, 2003-10-08T20:04Z

Men jag har lagt in den koden jag fick av Jojoxx men när jag försöker lägga till värderna i en databas med asp så finns inga värden. Varför?

Jag hämtar de med dessa 2.
Request.Form("week")
Request.Form("dates") -  formatet 2003-10-08 vore bra i värdet om det går att få olika

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

## #13 — Jojoxx, 2003-10-08T20:16Z

Använder du method="post" i formuläret? Annars ska det funka såvida det inte är något annat slarvfel på sidan, typ oavslutade formulät etc.

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

## #14 — Jojoxx, 2003-10-08T20:20Z

```
function updateDates(obj){
	obj.dates.length=0;
	for(var n=0;n<datesInWeek[obj.week.selectedIndex].length;n++){
		var d=datesInWeek[obj.week.selectedIndex][n];
		var dm=d.getMonth()+1; dm=(dm<10)?"0"+dm:dm;
		var dd=(d.getDate()<10)?"0"+d.getDate():d.getDate();
		obj.dates[n]=new Option(weekdays[d.getDay()]+" "+d.getDate()+"/"+(d.getMonth()+1),d.getFullYear()+"-"+dm+"-"+dd);
	}
}
```

Ger "2003-10-08"

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

## #15 — Asa, 2003-10-08T20:22Z

Jag hade visst denna kodsnutt med i form  *enctype="multipart/form-data"* å självklart funkade det ej då.Tackar för din hjälp igen!

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

## #16 — Asa, 2003-10-08T20:28Z

En sista grej! Vill bara visa veckorna från veckan som är nu och framåt. Hur ändrar man då i koden?

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

## #17 — Jojoxx, 2003-10-08T20:33Z

Då slopar vi variabeln year.

```
<form name="myform">
<select name="week" onChange="updateDates(this.form);"></select>
<select name="dates"></select>
</form>

<script type="text/javascript">
Date.prototype.getWeek=function(){
	var nywd=(new Date(this.getFullYear(),0,1).getDay()==0)?7:new Date(this.getFullYear(),0,1).getDay();
	var w=Math.ceil((this.getTime()+nywd*86400000-new Date(this.getFullYear(),0,1).getTime())/(604800000))
	if(nywd>4){w--;}
	if(w==0){ return new Date(this.getFullYear()-1,11,31).getWeek()}
	if(w==53 && new Date(this.getFullYear()+1,0,1).getDay()<=4){w=1}
	return w
}
var thisWeek=new Date().getWeek();
var weekdays=["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"];
var i=0; var datesInWeek=new Array(); datesInWeek[0]=new Array();
document.myform.week[document.myform.week.length]=new Option(new Date().getWeek(),new Date().getWeek());
for(var n=0;new Date(new Date().getTime()+n*86400000).getFullYear()==new Date().getFullYear();n++){
	var d=new Date(new Date().getTime()+n*86400000);
	datesInWeek[i][datesInWeek[i].length]=d;
	if(d.getWeek()!=thisWeek){
		document.myform.week[document.myform.week.length]=new Option(d.getWeek(),d.getWeek());
		i++;
		datesInWeek[i]=new Array();
	}
	thisWeek=d.getWeek();
}
function updateDates(obj){
	obj.dates.length=0;
	for(var n=0;n<datesInWeek[obj.week.selectedIndex].length;n++){
		var d=datesInWeek[obj.week.selectedIndex][n];
		var dm=d.getMonth()+1; dm=(dm<10)?"0"+dm:dm;
		var dd=(d.getDate()<10)?"0"+d.getDate():d.getDate();
		obj.dates[n]=new Option(weekdays[d.getDay()]+" "+d.getDate()+"/"+(d.getMonth()+1),d.getFullYear()+"-"+dm+"-"+dd);
	}
}
updateDates(document.myform);
</script>
```

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

## #18 — Asa, 2003-10-08T20:34Z

Okej! Men fortsätter denna kod år 2004 att visa så man kan välja likadant? Förstår du min fråga?

Näää, såg 2003 i koden. Hmm, äre bara å ändra till 2004 då?

Varför börjar en vecka med Söndag? Vill ha så den börjar med Måndag. Går det å fixa lätt?

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

## #19 — Asa, 2003-10-08T21:09Z

Jag kolla lite i ett annat script och kom fram till detta efter ett tag. Att antingen ha måndag eller söndag som start. Vet dock ej om det är så bra men det verkar funkar.

```
<script type="text/javascript">
var startAt = 1	    // 0 - sunday ; 1 - monday

Date.prototype.getWeek=function(){
	var nywd=(new Date(this.getFullYear(),0,1).getDay()-startAt==0)?7:new Date(this.getFullYear(),0,1).getDay()-startAt;
	var w=Math.ceil((this.getTime()+nywd*86400000-new Date(this.getFullYear(),0,1).getTime())/(604800000))
	if(nywd>4){w--;}
	if(w==0){ return new Date(this.getFullYear()-1,11,31).getWeek()}
	if(w==53 && new Date(this.getFullYear()+1,0,1).getDay()-startAt<=4){w=1}
	return w
}
var thisWeek=null;
if (startAt==0)	{
  var weekdays=["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"];
}else{
  var weekdays=["Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag","Söndag"];
}
var i=-1; var datesInWeek=new Array(); datesInWeek[1]=new Array();
for(var n=0;new Date(new Date().getTime()+n*86400000).getFullYear()==2003;n++){
	var d=new Date(new Date().getTime()+n*86400000);
	if(d.getWeek()!=thisWeek){
		document.myform.week[document.myform.week.length]=new Option(d.getWeek(),d.getWeek());
		i++;
		datesInWeek[i]=new Array();
	}
	thisWeek=d.getWeek();
	datesInWeek[i][datesInWeek[i].length]=d;
}
function updateDates(obj){
	obj.dates.length=0;
	for(var n=0;n<datesInWeek[obj.week.selectedIndex].length;n++){
		var d=datesInWeek[obj.week.selectedIndex][n];
		var dm=d.getMonth()+1; dm=(dm<10)?"0"+dm:dm;
		var dd=(d.getDate()<10)?"0"+d.getDate():d.getDate();
		obj.dates[n]=new Option(weekdays[(d.getDay()-startAt==-1)?6:(d.getDay()-startAt)]+" "+d.getDate()+"/"+(d.getMonth()+1),d.getFullYear()+"-"+dm+"-"+dd);
	}
}
updateDates(document.myform);
</script>
```

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

## #20 — Jojoxx, 2003-10-09T05:49Z

Missade 2003 på ett ställe. Nu visar den alltid aktuellt år, du behöver inte ange det. (plus en liten bugfix för söndag :))

```
<form name="myform">
<select name="week" onChange="updateDates(this.form);"></select>
<select name="dates"></select>
</form>

<script type="text/javascript">
Date.prototype.getWeek=function(){
	var nywd=(new Date(this.getFullYear(),0,1).getDay()==0)?7:new Date(this.getFullYear(),0,1).getDay();
	var w=Math.ceil((this.getTime()+nywd*86400000-new Date(this.getFullYear(),0,1).getTime())/(604800000))
	if(nywd>4){w--;}
	if(w==0){ return new Date(this.getFullYear()-1,11,31).getWeek()}
	if(w==53 && new Date(this.getFullYear()+1,0,1).getDay()<=4){w=1}
	return w
}
var thisWeek=new Date().getWeek();
var weekdays=["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"];
var i=0; var datesInWeek=new Array(); datesInWeek[0]=new Array();
document.myform.week[document.myform.week.length]=new Option(new Date().getWeek(),new Date().getWeek());
for(var n=0;new Date(new Date().getTime()+n*86400000).getFullYear()==new Date().getFullYear();n++){
	var d=new Date(new Date().getTime()+n*86400000);
	datesInWeek[i][datesInWeek[i].length]=d;
	if(d.getWeek()!=thisWeek){
		document.myform.week[document.myform.week.length]=new Option(d.getWeek(),d.getWeek());
		i++;
		datesInWeek[i]=new Array();
	}
	thisWeek=d.getWeek();
}
function updateDates(obj){
	obj.dates.length=0;
	for(var n=0;n<datesInWeek[obj.week.selectedIndex].length;n++){
		var d=datesInWeek[obj.week.selectedIndex][n];
		var dm=d.getMonth()+1; dm=(dm<10)?"0"+dm:dm;
		var dd=(d.getDate()<10)?"0"+d.getDate():d.getDate();
		obj.dates[n]=new Option(weekdays[d.getDay()]+" "+d.getDate()+"/"+(d.getMonth()+1),d.getFullYear()+"-"+dm+"-"+dd);
	}
}
updateDates(document.myform);
</script>
```

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/87980-vecka-datum  
Nästa sida: https://www.webforum.nu/amne/javascript/87980-vecka-datum/page2.md
