Avatar billede sotec Nybegynder
28. marts 2006 - 09:07 Der er 14 kommentarer og
3 løsninger

Udskriv næste lørdags dato i inputfelt

Jeg vil gerne lave en formular til udlejning
af et sommerhus, og i den forbindelse har jeg
2 inputfelter med ankomstdato og afrejsedato.
(der er knyttet en dato-picker, men det er
ikke relevant).

Jeg kunne godt bruge hjælp til at auto-udfylde
startdato med førstkommende lørdag, og afrejse-
dato med førstkommende lørdag + 1 uge.

Eksempel:

Ankomst:  01-04-2006
Afrejse:  08-04-2006

Det er statiske filer, så det skal laves i js.

Kan I hjælpe med lidt kode?
Avatar billede medions Nybegynder
28. marts 2006 - 09:42 #1
Fx. såadn her:

var ny_dato = new Date(new Date().getTime()+1000*60*60*24*7);

//>Rune
Avatar billede sotec Nybegynder
28. marts 2006 - 09:49 #2
Hej Rune, kan du hjælpe mig med at udskrive funktionen også?
Avatar billede medions Nybegynder
28. marts 2006 - 10:58 #3
<script language="javascript" type="text/javascript">
var gl_dato = new Date(new Date().getTime());
var ny_dato = new Date(new Date().getTime()+1000*60*60*24*7);
document.write(gl_dato);
document.write("<br />");
document.write(ny_dato);
</script>

:)

//>Rune
Avatar billede medions Nybegynder
28. marts 2006 - 11:08 #4
<script language="JavaScript" type="text/javascript">
<!--

function addDays(myDate,days) {
    return new Date(myDate.getTime() + days*24*60*60*1000);
}

var arrDays = new Array( "søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag" );
var objDate = new Date(2004, 2, 30);
var intAddDays = 7;

objDate = addDays( objDate,intAddDays );
var strResult = arrDays[ objDate.getDay() ] + ", den " + objDate.getDate() + " - " + ( objDate.getMonth() + 1 ) + " - " + objDate.getFullYear();
alert( strResult );

//-->
</script>

Sådan kan du oxo gøre :)

//>Rune
Avatar billede sotec Nybegynder
28. marts 2006 - 11:17 #5
Jeg er meget glad for hjælpen, men skal bruge dem således:

<input type="text" name="ankomst" value="[førstkommende lørdag]">

<input type="text" name="afrejse" value="[førstkommende lørdag + 7 dage">

Formatet er således:
Ankomst:  01-04-2006
Afrejse:  08-04-2006
Avatar billede grunken Nybegynder
28. marts 2006 - 11:44 #6
Hurtigt eksempel :-)

<html>
<body>

<head>
    <script type="text/javascript">
   
        function returndato(d)
        {
            return d.getDate() + "-" + d.getMonth() + "-" + d.getYear();       
        }
       
        function addtodate(d,days)
        {
            d.setTime(d.getTime() + (1000*60*60*24 * days));
            return d;
        }

        window.onload = function()
        {   
            var d    =    new Date()
            dayadd    = 1000*60*60*24;
       
            for(i=d.getDay();i!=6;i=d.getDay(d.setTime(d.getTime() + dayadd))){};
           
            document.tst.arrival.value = returndato(d);
            document.tst.departure.value = returndato(addtodate(d,7));
        }
       
    </script>
</head>

<form name="tst" action="." method="post">
    Ankomst : <input type="text" name="arrival"><br />
    Afrejse : <input type="text" name="departure">
</form>
</body>
</html>
Avatar billede grunken Nybegynder
28. marts 2006 - 11:48 #7
Og med nuller foran :-)

<html>
<body>

<head>
    <script type="text/javascript">
   
        function returndato(d)
        {
            dd = d.getDate()<10 ? "0" + d.getDate() : d.getDate();
            dm = d.getMonth()<10 ? "0" + d.getMonth() : d.getMonth();
           
            return dd + "-" + dm + "-" + d.getYear();       
        }
       
        function addtodate(d,days)
        {
            d.setTime(d.getTime() + (1000*60*60*24 * days));
            return d;
        }

        window.onload = function()
        {   
            var d    =    new Date()
            dayadd    = 1000*60*60*24;
       
            for(i=d.getDay();i!=6;i=d.getDay(d.setTime(d.getTime() + dayadd))){};
           
            document.tst.arrival.value = returndato(d);
            document.tst.departure.value = returndato(addtodate(d,7));
        }
       
    </script>
</head>

<form name="tst" action="." method="post">
    Ankomst : <input type="text" name="arrival"><br />
    Afrejse : <input type="text" name="departure">
</form>

</body>
</html>
Avatar billede sotec Nybegynder
28. marts 2006 - 11:56 #8
Det er simpelthen verdensklasse, 1000-tak!
Avatar billede medions Nybegynder
28. marts 2006 - 12:52 #9
Hmm Grunken, er det ikke dig der skulle ha' haft pointne? :)

//>Rune
Avatar billede sotec Nybegynder
28. marts 2006 - 13:46 #10
Ups, der var jeg lidt for hurtig.
What to do?
Avatar billede sotec Nybegynder
28. marts 2006 - 13:49 #11
Har også opdaget en lille fejl.
Det bør være næste lørdag, altså 1/4 osv.
Altså ikke første lørdag i måneden.

Jeg opretter lige et spørgsmål mere, så
kan grunken måske redde mig
Avatar billede grunken Nybegynder
28. marts 2006 - 14:10 #12
en klar buggy - havde lige glemt at js returere måneder array like, så derfor skal returndato bare ændres til

        function returndato(d)
        {
            dd = d.getDate()<10 ? "0" + d.getDate() : d.getDate();
            dm = (d.getMonth()+1) < 10 ? "0" + (d.getMonth() + 1) : (d.getMonth() + 1);
           
            return dd + "-" + dm + "-" + d.getYear();       
        }
Avatar billede grunken Nybegynder
28. marts 2006 - 14:11 #13
Og jeg springer over dine points - pas nu på dem til en anden god gang!
Avatar billede sotec Nybegynder
28. marts 2006 - 14:23 #14
Meget taknemmelig, grunken
Syntes du skal nappe dem i det nye spørgsmål
Avatar billede grunken Nybegynder
28. marts 2006 - 16:06 #15
velbekomme - jeg smider et svar snarligt - dog må jeg lige spørge om noget inden!

Hvis man kommer ind på siden den 1/4 - som jo er på lørdag - er førstkommende lørdag så den 1/4, eller 8/4 ??
Avatar billede grunken Nybegynder
28. marts 2006 - 16:12 #16
I så flad skal onload function justeres lidt :-)

        window.onload = function()
        {   
            var d    =    new Date()
            dayadd    = 1000*60*60*24;
       
            for(i=d.getDay(),nj=j=d.getDate();i!=6 || j==nj;i=d.getDay(d.setTime(d.getTime() + dayadd)),nj = d.getDate());
           
            document.tst.arrival.value = returndato(d);
            document.tst.departure.value = returndato(addtodate(d,7));
        }
Avatar billede grunken Nybegynder
28. marts 2006 - 16:13 #17
LOL i så fald sagde manden
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