JavaScript Academy · Lektion

Tidszoner og UTC

Håndtér UTC og lokal tid korrekt.

Lektion 4 af 413 trin

Tidszoner og UTC er en gratis JavaScript Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i JavaScript Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. JavaScript Academy-kurset indeholder 4 lektioner i alt.

Lokal tid kontra UTC

En dato gemmer ét absolut tidspunkt, men den kan læses som lokal tid eller som UTC, den globale referencetid. Getterne findes i begge varianter.

const d = new Date(Date.UTC(2024, 0, 15, 12, 0, 0))
console.log(d.getUTCHours())

UTC-gettere

Metoder med præfikset UTC, f.eks. getUTCFullYear og getUTCHours, læser datokomponenter i UTC-tidszonen uanset maskinen.

const d = new Date(Date.UTC(2024, 5, 15, 8, 30, 0))
console.log(d.getUTCFullYear())
console.log(d.getUTCHours())
console.log(d.getUTCMinutes())

getTimezoneOffset

getTimezoneOffset returnerer forskellen mellem lokal tid og UTC i minutter. En positiv værdi betyder, at den lokale tid er bagud i forhold til UTC.

const d = new Date()
const offset = d.getTimezoneOffset()
console.log(typeof offset)

Forskydningens fortegn

Forskydningens fortegn er omvendt af det, mange forventer: en tidszone foran UTC giver en negativ forskydning. Omregn minutter til timer ved at dividere med 60.

const offsetMinutes = 120
const hours = offsetMinutes / 60
console.log(hours)

Oprettelse af UTC-datoer

Date.UTC tager de samme komponentargumenter som konstruktøren, men fortolker dem som UTC og returnerer et tidsstempel, du kan give videre til new Date.

const ts = Date.UTC(2024, 0, 1, 0, 0, 0)
const d = new Date(ts)
console.log(d.getUTCHours())

UTC-settere

Settere som setUTCHours justerer en dato i UTC-tidszonen. De fungerer som de lokale settere, men er forankret i UTC.

const d = new Date(Date.UTC(2024, 0, 1, 0, 0, 0))
d.setUTCHours(15)
console.log(d.getUTCHours())

Z i ISO-strenge

Det afsluttende Z i en ISO-streng betyder, at tiden er i UTC, også kaldet Zulu-tid. Strenge uden Z kan blive fortolket som lokal tid.

const d = new Date("2024-01-15T10:00:00Z")
console.log(d.getUTCHours())

Samme tidspunkt, forskellige aflæsninger

De lokale gettere og UTC-getterne beskriver det samme øjeblik i forskellige tidszoner, så deres timeværdier kan variere med forskydningen.

const d = new Date(Date.UTC(2024, 0, 1, 12, 0, 0))
console.log(d.getUTCHours())

Lagring i UTC

En almindelig god praksis er at gemme alle datoer i UTC og først konvertere dem til lokal tid ved visning. Det undgår tvetydighed på tværs af regioner.

const d = new Date(Date.UTC(2024, 0, 1, 0, 0, 0))
console.log(d.toISOString())

Angivelse af en tidszone

Formateringsmetoder accepterer indstillingen timeZone, så du udtrykkeligt kan vise et tidspunkt i en valgt tidszone, f.eks. UTC.

const d = new Date(Date.UTC(2024, 0, 1, 0, 0, 0))
const text = d.toLocaleString("en-US", { timeZone: "UTC" })
console.log(typeof text)

Undgå faldgruber

Hvis du blander lokale metoder og UTC-metoder på den samme dato, opstår der subtile fejl. Vælg én model pr. beregning, og anvend den konsekvent.

const d = new Date(Date.UTC(2024, 0, 1, 0, 0, 0))
console.log(d.getUTCFullYear())
console.log(d.getUTCMonth())

Hurtig kontrol

Test din viden om tidszoner.

Opsummering

Opsummering: Læs og skriv datoer konsekvent i lokal tid eller UTC.

  • UTC-gettere og -settere fungerer i den globale tidszone
  • getTimezoneOffset returnerer minutter med omvendt fortegn
  • Endelsen Z markerer en ISO-streng som UTC
  • Gem i UTC, og vis i lokal tid
const d = new Date(Date.UTC(2024, 0, 1, 12, 0, 0))
console.log(d.getUTCHours())
Gratis at komme i gang

Lær JavaScript med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
59
Lektioner
200

Ofte stillede spørgsmål

Er lektionen “Tidszoner og UTC” gratis?

Ja — alle 3 lektioner i læringssporet JavaScript Academy, inklusive “Tidszoner og UTC”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. JavaScript Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Tidszoner og UTC”?

Håndtér UTC og lokal tid korrekt. Du øver dig i JavaScript Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på JavaScript Academy?

Der kræves ingen tidligere erfaring. JavaScript Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Tidszoner og UTC”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne JavaScript Academy-lektion?

Ja. Alle JavaScript Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Oprettelse og læsning af datoer
  2. Tidsstempler og datoberegning
  3. Formatering af datoer
  4. Tidszoner og UTC
← Tilbage til JavaScript Academy