Avatar billede flim Nybegynder
07. maj 2005 - 17:42 Der er 14 kommentarer og
1 løsning

Forskel på datoer

Hej eksperter!

Jeg har 2 datoer, som jeg gerne vil have beregnet forskellen på i dage.

Måned, dag og år er gemt i variabler.

Hvis forskellen på de 2 dage er mere end 2 uger skal der komme en popupboks, som spørger brugeren om dette nu også er korrekt.

Hvis ja skal brugeren sendes videre, hvis nej, skal brugeren blive på siden.

Er der en der kan hjælpe mig lidt på vej her?
Avatar billede flim Nybegynder
07. maj 2005 - 17:55 #1
Skal lige tilføje at jeg ikke ved om det kan alde sig gøre, da den skal ned og aflæse fra nogle tekstbokse som brugeren indtaster noget i.

På submit skal den så aflæse værdierne og evt. komme frem med boksen
Avatar billede roenving Novice
08. maj 2005 - 06:32 #2
Hvordan indtaster brugerne datoerne ?-)

-- en almindelig validering vil være nemmest at bruge med et Date-objekt, f.eks.

<script type="text/javascript">
function valider(f){
  var dag1 = f.dag1.value.split("-");
  var dag2 = f.dag2.value.split("-");
  dag1 = new Date(dag1[2],dag1[1],dag1[0]);
  dag2 = new Date(dag2[2],dag2[1],dag2[0]);
  var val = dag2.getTime()-dag1.getTime()<1000*60*60*24*14;//millisekunder*sek*min*timer*dage
  if(val)
    return true;
  else
    return confirm('Er du sikker på, at det varer mere end to uger ?-)');
}
</script>

<form ... onsubmit="return valider(this);">
Avatar billede flim Nybegynder
09. maj 2005 - 09:15 #3
Brugeren indtaster datoerne i 3 seperate felter (dvs 6 felter ialt for 2 datoer), så jeg skal vel bare rette dit eksempel til:

  dag1 = new Date($year,$month,$day);
  dag2 = new Date($year2,$month2,$day2);

Jeg tester det lige engang i aften og vil så vende tilbage :-)

Mvh Flim
Avatar billede roenving Novice
09. maj 2005 - 11:46 #4
Ja, hvis du har placeret indholdet fra dine felter i de 6 variabler !-)
Avatar billede flim Nybegynder
09. maj 2005 - 14:56 #5
Kommer jeg lige i tanke om at jeg jo ikke har.

Det er som sagt 6 tekstbokse, og så er spørgsmålet hvordan jeg trækker værdien ud af dem?

Den først ser fx sådan her ud: <input type="text" name"day" etc etc>

Kan jeg så skrive var dag1 = day.value for at få værdien ud som jeg kan regne videre med??
Avatar billede roenving Novice
09. maj 2005 - 15:10 #6
Hvor og hvornår skal du afvikle scriptet ?-)
Avatar billede flim Nybegynder
09. maj 2005 - 15:14 #7
Når jeg trykker på en submit i min form
Avatar billede roenving Novice
09. maj 2005 - 15:19 #8
Så er det bare at skrive den ovenstående funktion lidt om:

function valider(f){
  var dag1 = [f.aar1.value,f.maaned1.value,f.dag1.value];
  var dag2 = [f.aar2.value,f.maaned2.value,f.dag2.value];
  dag1 = new Date(dag1[2],dag1[1],dag1[0]);
  dag2 = new Date(dag2[2],dag2[1],dag2[0]);
...
Avatar billede roenving Novice
09. maj 2005 - 15:19 #9
Hov ...

  dag1 = new Date(dag1[0],dag1[1],dag1[2]);
  dag2 = new Date(dag2[0],dag2[1],dag2[2]);
Avatar billede roenving Novice
09. maj 2005 - 15:20 #10
Eller

function valider(f){
  var dag1 = new Date(+f.aar1.value,+f.maaned1.value-1,+f.dag1.value);
  var dag2 = new Date(+f.aar2.value,+f.maaned2.value-1,+f.dag2.value);
...
Avatar billede flim Nybegynder
09. maj 2005 - 15:21 #11
Jeg har ikke mulighed for at checke nu her, men engang i aften ser jeg om det virker. Vender tilbage :-)
Avatar billede flim Nybegynder
09. maj 2005 - 19:07 #12
Det virker meget næsten...

Den skulle dog kun komme og spørge hvis det er mere end 14 dage. Nu kommer kassen op hvis det er mere end 13 dage. Hvor er det så at jeg ændrer denne lille ting?

Og når du skriver svaret - smider du så et svar ved?

/Flim
Avatar billede roenving Novice
11. maj 2005 - 00:04 #13
Brug <= til at sammenligne med 15 dage i linjen !-)

  var val = dag2.getTime()-dag1.getTime()<=1000*60*60*24*15;//millisekunder*sek*min*timer*dage

Velbekomme '-)
Avatar billede flim Nybegynder
11. maj 2005 - 08:38 #14
roenving - lige et kort ekstra spørgsmål...

Kan jeg selv vælge hvad der skal stå i knapperne man kan trykke på eller er det standard?

Dvs kan jeg skifte "Ja" og "Nej" ud med "Selvfølgelig" og "Nopes", eller er det noget rod?
Avatar billede roenving Novice
11. maj 2005 - 10:49 #15
-- nej, confirm er en system-ting, som du ikke kan ændre (og den er iøvrigt forskellig fra browser til browser og efter sprogindstillinger !-)

-- og tak for point ;~}
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