Avatar billede Søren Bech Morsing Praktikant
30. marts 2005 - 15:47 Der er 11 kommentarer og
1 løsning

datoer: træk fra/læg til x antal dage/måneder/år til dags dato

Jeg vil gerne se et eksempel på en funktion med datoer hvor jeg kan kalde den med 3 parametre:
function datecalculator(days,months,years)

datecalculator(,,-2)
skal fx kunne returne dags dato -2 år.

datecalculator(15,1,0)
skal fx kunne returne dags dato 1½ måned fra nu af (altså frem i tiden)
Avatar billede barklund Nybegynder
30. marts 2005 - 15:53 #1
function datecalculator(d,m,y) {
  var now = new Date();
  now.setDay(now.getDay() + d);
  now.setMonth(now.getMonth() + m);
  now.setFullYear(now.getFullYear() + y);
  return now;
}

Tror jeg bare det er.

--
Morten Barklund
Avatar billede bromer Nybegynder
30. marts 2005 - 15:54 #2
eller

function datecalculator($day,$month,$year) {
  return date("Y-m-d",mktime(0,0,0,date("m")+$month,date("d")+$day,date("Y")+$year));
}
Avatar billede bromer Nybegynder
30. marts 2005 - 15:55 #3
wow.. og så var man lige pludselig i javscript og ikke i PHP...
Avatar billede barklund Nybegynder
30. marts 2005 - 15:55 #4
:/
Avatar billede Søren Bech Morsing Praktikant
30. marts 2005 - 16:08 #5
<script language="javascript">
function datecalculator(d,m,y) {
  var now = new Date();
  now.setDate(now.getDay() + d);
  now.setMonth(now.getMonth() + m);
  now.setFullYear(now.getFullYear() + y);
  alert(now);
}
datecalculator(1,-1,1)
</script>
Avatar billede Søren Bech Morsing Praktikant
30. marts 2005 - 16:09 #6
coolll setDay skulle bare lige være setDate
Men i dag er det 30 marts 2005
datecalculator(0,-1,0)

datecalculator(0,-1,0)
giver mig så 3. februar = ikke forstået?
Avatar billede barklund Nybegynder
30. marts 2005 - 16:15 #7
Så skal det nok også være getDate og ikke getDay :)
Avatar billede Søren Bech Morsing Praktikant
30. marts 2005 - 18:39 #8
he he... prøver i morgen tidlig
Avatar billede Søren Bech Morsing Praktikant
31. marts 2005 - 09:28 #9
Virker stadig mystisk (men svare I bare, det er ok til mig):
<script language="javascript">

function datecalculator(d,m,y) {
  var now = new Date();
  now.setDate(now.getDate() + d);
  now.setMonth(now.getMonth() + m);
  now.setFullYear(now.getFullYear() + y);
  alert(now);
}
datecalculator(-1,-1,0) // returnere 2. marts 2005 - MYSTISK - skulle vel være ca. 28. februar

datecalculator(0,1,0) //returnere 1. maj 2005 - KORREKT (hvis måned = 30 dage)

datecalculator(0,0,1) // returnere 31. marts 2006 - KORREKT

</script>
Avatar billede barklund Nybegynder
31. marts 2005 - 09:49 #10
Ah, nu forstår jeg. Trækker du én måned fra dags dato, får du 31. februar - og det findes ikke og bliver til 3. marts. Og trækker du igen en dag fra dette får du 2. marts.

Så det skyldes lige præcis, at den selv runder af til den rette dato.

--
Morten Barklund
Avatar billede barklund Nybegynder
31. marts 2005 - 09:57 #11
Jeg kaster lige et svar - og håber du følger mig :)
Avatar billede barklund Nybegynder
31. marts 2005 - 11:54 #12
Bare vi er enige :)
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