Avatar billede tybz Nybegynder
02. maj 2003 - 10:15 Der er 9 kommentarer og
1 løsning

Tjek om dato er valid

Jeg har datoen som yyyy-mm-dd
Jeg skal tjekke om denne dato er valid.
Den skal returnere true hvis den er eller false hvis datoen ikke er valid
Avatar billede fri-hash Nybegynder
02. maj 2003 - 10:22 #1
det kommer jo an på hvad du mener med valid

må det være en dato i fremtiden, må det være en dato der har fundet sted, skal der tages højde for skudår, osv.
Avatar billede mm12010 Nybegynder
02. maj 2003 - 10:23 #2
og hvad er input'et?
Avatar billede fri-hash Nybegynder
02. maj 2003 - 10:24 #3
hvis du selv vil rode med det kan du kigge lidt på disse indlæg vedrørende CPR-nummer-validering, og så pille det kode ud, der validerer på sidste 4 cifre

http://www.eksperten.dk/kat/10?searchtype=txt&words=cpr&method=and&sort=score&catid=10
Avatar billede tybz Nybegynder
02. maj 2003 - 10:31 #4
Min første tanke var bare at tjekke om datoen var valid...dvs. at den ikke må være 30-02-2004 da denne dag ikke findes.
Men jeg skal også tjekke på om dagen er >= end dags dato.
Der er ingen maks på hvor stor datoen er.
Avatar billede fri-hash Nybegynder
02. maj 2003 - 10:34 #5
Avatar billede Slettet bruger
02. maj 2003 - 16:36 #7
function tjekDato(dat) {
  temp = dat.split("-");
  d = new Date(parseInt(temp[0], 10), parseInt(temp[1], 10), parseInt(temp[2], 10));
  if (d.getFullYear() != parseInt(temp[0], 10) || (d.getMonth() + 1) != parseInt(temp[1], 10) || d.getDate() != parseInt(temp[2], 10)) {
    alert("Datoen er ikke gyldig!");
    return false;
  }
  nu = new Date();
  if (d.getTime() < nu.getTime()) {
    alert("Datoen skal være i fremtiden!");
    return false;
  }
  return true;
}

Kaldes fx med:

<form ... onSubmit="return tjekDato(this.dato.value);">
<input type="text" name="dato" value="2003-05-02">
</form>
Avatar billede tybz Nybegynder
05. maj 2003 - 08:15 #8
phoenixv : Ville have givet dig point hvis dit kode virkede. Den returnere altid: Datoen er ikke gyldig.
Desuden løser det vel heller ikke problemet om datoen er gyldig.
Avatar billede Slettet bruger
05. maj 2003 - 13:45 #9
Sådan her:

function tjekDato(dat) {
  temp = dat.split("-");
  d = new Date(parseInt(temp[0], 10), parseInt(temp[1], 10) - 1, parseInt(temp[2], 10));
  if (d.getFullYear() != parseInt(temp[0], 10) || (d.getMonth() + 1) != parseInt(temp[1], 10) || d.getDate() != parseInt(temp[2], 10)) {
    alert("Datoen er ikke gyldig!");
    return false;
  }
  nu = new Date();
  if (d.getTime() < nu.getTime()) {
    alert("Datoen skal være i fremtiden!");
    return false;
  }
  return true;
}
Avatar billede tybz Nybegynder
05. maj 2003 - 14:13 #10
phoenixv: thanks :)
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