Avatar billede jps2mt Nybegynder
06. februar 2006 - 21:12 Der er 5 kommentarer og
2 løsninger

Beregning af dato

Hej,

Er nu nået frem til flg. script til beregning af datoer:

function datecalculator(oform) {
var now = new Date();

var lngt = oform["OTKDLmonum"];
var typ = oform["typen"];
var out = oform["ffa"];

var months=new Array(12);
months[0]="Jan";
months[1]="Feb";
months[2]="Mar";
months[3]="Apr";
months[4]="May";
months[5]="Jun";
months[6]="Jul";
months[7]="Aug";
months[8]="Sep";
months[9]="Oct";
months[10]="Nov";
months[11]="Dec";

if(isNaN(lngt.value) || (lngt.value <= 0)) {
  out.value = now.getDate() + ". " + months[now.getMonth()] + " " + now.getYear();
}
else {
  if(typ.value == "dg") {
  now.setDate(now.getDate() + lngt.value);
  }
  else if(typ.value == "wk") {
  now.setDate(now.getDate() + (lngt.value*7));
  }
  else if(typ.value == "md") {
  now.setMonth(now.getMonth() + lngt.value);
  }
  else if(typ.value == "yr") {
  now.setFullYear(now.getFullYear() + lngt.value);
  }
  out.value = now.getDate() + ". " + months[now.getMonth()] + " " + now.getFullYear()
}
}

Problemet er bare at står min selectboks på dage (dg) så går det helt galt...

Lægger jeg en dag til idag vil den have det skal være 2. April, og lægger jeg 2 dage til bliver det til 3. April...

Uge valget (wk) passer meget godt...1 uge til idag bliver 13. Februar og 2 uger bliver 20. Februar...

Ved månederne (md) kager den også helt...1 måned bliver således til 6. December 2006 og 2 bliver til 6. Jan 2007...

Ved årene (yr) er den også gal, 1 år bliver til 6. Februar 20061 og 2 år bliver til 6. Februar 20062...

Nogen der lige kan knække den nød??
Avatar billede jps2mt Nybegynder
06. februar 2006 - 21:23 #1
Løst...

function datecalculator(oform) {
var now = new Date();

var lngt = oform["OTKDLmonum"];
var typ = oform["typen"];
var out = oform["ffa"];

var months=new Array(12);
months[0]="Jan";
months[1]="Feb";
months[2]="Mar";
months[3]="Apr";
months[4]="May";
months[5]="Jun";
months[6]="Jul";
months[7]="Aug";
months[8]="Sep";
months[9]="Oct";
months[10]="Nov";
months[11]="Dec";

if(isNaN(lngt.value) || (lngt.value <= 0)) {
  out.value = now.getDate() + ". " + months[now.getMonth()] + " " + now.getYear();
}
else {
  if(typ.value == "dg") {
  now.setDate(now.getDate() + (lngt.value*1));
  }
  else if(typ.value == "wk") {
  now.setDate(now.getDate() + (lngt.value*7));
  }
  else if(typ.value == "md") {
  now.setMonth(now.getMonth() + (lngt.value*1));
  }
  else if(typ.value == "yr") {
  now.setFullYear(now.getFullYear() + (lngt.value*1));
  }
  out.value = now.getDate() + ". " + months[now.getMonth()] + " " + now.getFullYear()
}
}

Af en eller anden årsag skulle value af det tekst-felt der skulle lægges til ganges med et eller andet for at det virkede...
Avatar billede jps2mt Nybegynder
06. februar 2006 - 21:28 #2
Til gengæld går det galt med denne linie:

out.value = now.getDate() + ". " + months[now.getMonth()] + " " + now.getYear();

Den returnerer bare 6. Feb 106
Avatar billede tjp Mester
06. februar 2006 - 21:36 #3
Brug 'now.getFullYear();' i stedet for 'now.getYear();', så får du 2006.
Avatar billede jps2mt Nybegynder
06. februar 2006 - 21:39 #4
DOH...Ja :) Tak...
Avatar billede tjp Mester
06. februar 2006 - 21:57 #5
Velbekomme...
Avatar billede jps2mt Nybegynder
10. februar 2006 - 19:52 #6
Vil du have, skal vi dele eller skal jeg bare nuppe points tilbage?
Avatar billede tjp Mester
11. februar 2006 - 00:45 #7
Lad os bare dele! ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester