Avatar billede misbruger Nybegynder
08. august 2001 - 12:58 Der er 11 kommentarer og
1 løsning

Dato & tid

  function DatoOgKlokken() {
    dato = new Date();
    dag = Check(dato.getDate());
    maaned = Check(dato.getMonth());
    aar = Check(dato.getYear());
    time = Check(dato.getHours());
    minut = Check(dato.getMinutes());
    sekund = Check(dato.getSeconds());
    self.status = \"Dags dato er \" + dag + \".\" + maaned + \".\" + aar + \" Klokken er \" + time + \":\" + minut + \":\" + sekund;
    window.setTimeout(\"DatoOgKlokken()\", 1000 );
  }

IE viser = \"Dags dato er 08.07.2001 Klokken er 13:00:01\"

NS viser = \"Dags dato er 08.07.101 Klokken er 13:00:01\"

Hvorfor?????
Avatar billede nute Nybegynder
08. august 2001 - 13:01 #1
fordi i NS implementasjonen av JavaScript, så starter år på 1900. Du skal gjøre sånn:

self.status = \"Dags dato er \" + dag + \".\" + maaned + \".\" + (document.layers?1900+aar:aar) + \" Klokken er \" + time + \":\" + minut + \":\" + sekund;

/nute
   

Avatar billede misbruger Nybegynder
08. august 2001 - 13:04 #2
ok nute....men..!

Dags dato er 08.08.2001 og ikke 08.07.2001 både ei og ns påstår, og jeg har tjekket min sysdato den er iorden
Avatar billede nute Nybegynder
08. august 2001 - 13:06 #3
det er igjen fordi måneder i js (og Java) går fra 0-11, ikke 1-12. Januar = 0, februar = 1 ...desember = 11...
Avatar billede jakoba Nybegynder
08. august 2001 - 13:23 #4
det er linien:
    aar = Check(dato.getYear());
det drejer sig om.
Oprindeligt blev den funktion defineret til at skulle returnere \"de to sidste cifre i årstallet\". Men som kom Y2K og så var det pludstelig ikke så populært med 2-cifrede årstal :-)).

Microsoft valgte at lave om i funktionen så den ny giver hele årstallet. Nemt for nybegyndere, men surt for den der selv havde fundet på at lægge 1900 til tallet når de skrev ud

Netscape definerede en extra funktion  Date.getFullYear()  der returnerer hele årstallet, og lod getYear være uændret af hensyn til \'gamle\' wegsider (det giver også lidt problemer her og der).

Generelt viljeg anbefale altid at bruge  getFullYear().  IE supporterer den også.

mvh JakobA
Avatar billede nute Nybegynder
08. august 2001 - 13:25 #5
jakoba >> fint, så lærte man noe nytt idag også :-) getFullYear() tenkte jeg overhodet ikke på...
Avatar billede misbruger Nybegynder
08. august 2001 - 13:30 #6
jakoba - smukt men hvad så med month? er der ikke også en genvej der?
Avatar billede nute Nybegynder
08. august 2001 - 13:34 #7
misbruger >> der er du selv nødt til å legge til 1 på din måned:

maaned = Check((dato.getMonth()) + 1);

/nute
Avatar billede misbruger Nybegynder
08. august 2001 - 13:39 #8
nute - den er jeg med på.

Men jeg ser ikke helt klart på det...hvorfor 0-11?

inlighten me?
Avatar billede misbruger Nybegynder
08. august 2001 - 13:40 #9
et svar fra jakoba ???
Avatar billede nute Nybegynder
08. august 2001 - 13:50 #10
uha...jeg er faktisk ikke sikker, men jeg skyter litt vilt i luften. Det hele bygger på implementasjonen av Java

Jeg kan tenke meg at måneder, fra java.util.Calendar, er implementert som en array. Denne array inneholder 12 konstanter, en for hver måned (JANUARY, FEBRUARY...DECEMBER). Når man forespør på en måned i Java, så er faktisk ikke selve tallet man får tilbake fra calendarObject.getTime().getMonth() \"ubetydelig\". Dette kan man nemlig sammenligne med en konstant for å finne den korrekte måned:

if( calendarObject.getTime().getMonth() == JANUARY ){
...
}

Jeg kan tenke meg at dette er noe av grunnen, siden en array i Java *alltid* starter på 0, og ikke 1.

Som sagt...dette er bare et vilt gjett...

/nute
Avatar billede misbruger Nybegynder
08. august 2001 - 13:54 #11
hmm.... jeg takker!

jakoba aflønnes i andet spm!
Avatar billede misbruger Nybegynder
08. august 2001 - 13:57 #12
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