Skip to main content
Blog
Blog

Hoe krijg je de tijdzone van de browser in JavaScript (gids 2026)

Haal de browsertijdzone op in JavaScript met één regel Intl-code, lees de UTC-offset, verwerk zomertijd en gebruik de zone als fraudesignaal.

Jul 27, 2026 5 min read
Hoe krijg je de tijdzone van de browser in JavaScript (gids 2026)

Als je de tijdzone van de bezoeker in de browser nodig hebt, geeft JavaScript die in één regel. Deze gids behandelt de moderne one-liner, de oudere getTimezoneOffset-aanpak en wanneer je welke gebruikt, hoe je de UTC-tijd ophaalt, hoe je een datum in elke tijdzone opmaakt, de randgevallen waarop mensen struikelen, en waarom de browsertijdzone ook een nuttig fraude- en device fingerprinting-signaal is.

Samenvatting: de browsertijdzone ophalen in JavaScript

  • De moderne manier: Intl.DateTimeFormat().resolvedOptions().timeZone geeft de IANA-naam terug (bijvoorbeeld America/New_York). Het werkt in elke huidige browser en heeft geen bibliotheek nodig.
  • new Date().getTimezoneOffset() geeft de offset ten opzichte van UTC in minuten terug, maar het teken is omgekeerd en het verandert met de zomertijd, dus geef de voorkeur aan de IANA-naam voor opslag.
  • De gerapporteerde tijdzone kan worden vervalst, dus fraude- en botdetectiesystemen behandelen hem als één signaal tussen vele, vergeleken met IP-geolocatie en de TLS-fingerprint.

Hoe krijg je de browsertijdzone in JavaScript (de one-liner)

De moderne, betrouwbare manier om de tijdzone van de browser uit te lezen is de Intl-API:

const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
// "America/New_York", "Europe/London", "Asia/Tokyo", ...

Intl.DateTimeFormat().resolvedOptions() geeft de locale- en opmaakopties terug die de browser voor de huidige omgeving heeft bepaald, en de eigenschap timeZone is de IANA-tijdzonenaam. Dit is de waarde die je bijna altijd wilt: hij is stabiel, leesbaar voor mensen en onafhankelijk van de huidige zomertijdoffset. Hij wordt ondersteund in elke moderne browser (Chrome, Firefox, Safari, Edge).

Hoe krijg je de UTC-offset met getTimezoneOffset()

Voordat Intl breed werd ondersteund, was de gangbare aanpak Date.prototype.getTimezoneOffset():

const offsetMinutes = new Date().getTimezoneOffset();
// New York in summer (EDT, UTC-4): 240
// London in winter (GMT, UTC+0): 0

Twee dingen verrassen mensen hier. Ten eerste is het teken omgekeerd: een zone die achterloopt op UTC geeft een positief getal terug. getTimezoneOffset geeft de minuten terug die je bij de lokale tijd optelt om UTC te bereiken, dus UTC-4 is 240, niet -240. Ten tweede is de offset niet de tijdzone. Hij verandert tweemaal per jaar met de zomertijd, en meerdere verschillende zones delen dezelfde offset, dus je kunt de IANA-naam er niet uit herleiden. Gebruik de offset voor snel UTC-rekenwerk; gebruik de IANA-naam om de zone te identificeren of op te slaan.

Nu de basis is behandeld, gaan de volgende twee secties over de UTC-tijd en opmaak in een specifieke zone, en daarna komen we bij waarom deze waarde belangrijk is voor fraudedetectie.

Hoe krijg je de huidige UTC-tijd in JavaScript

UTC is onafhankelijk van de tijdzone van de bezoeker, en daarom is het het juiste formaat om naar een server te sturen of in een database op te slaan:

const now = new Date();
now.toISOString();   // "2026-07-27T14:03:00.000Z" (always UTC)
now.getTime();       // epoch milliseconds, UTC-based
Date.now();          // epoch milliseconds, shorthand

toISOString() geeft altijd UTC terug (de afsluitende Z), ongeacht waar de gebruiker zich bevindt. Sla tijdstempels op in UTC en converteer ze alleen voor weergave naar de zone van de gebruiker.

Een datum opmaken in een specifieke tijdzone

Om een datum in een gekozen zone te tonen, geef je timeZone door aan Intl.DateTimeFormat:

new Intl.DateTimeFormat("en-US", {
  timeZone: "America/New_York",
  dateStyle: "medium",
  timeStyle: "short",
}).format(new Date());
// "Jul 27, 2026, 10:03 AM"

Dit converteert en formatteert in één stap en verwerkt de zomertijd automatisch voor de genoemde zone. Voor dit veelvoorkomende geval is geen datumbibliotheek nodig.

Randgevallen: zomertijd, oudere browsers en vervalste tijdzones

Een paar zaken om in gedachten te houden voordat je op de waarde vertrouwt:

  • Zomertijd. De offset verandert door het jaar heen. Sla altijd de IANA-naam op, geen vaste offset, en laat het platform de offset voor een gegeven datum bepalen.
  • Zeer oude omgevingen. In verouderde browsers waar Intl niet beschikbaar is, kan resolvedOptions().timeZone undefined zijn. Val terug op getTimezoneOffset() voor een ruwe offset, of detecteer de functie en degradeer netjes.
  • De waarde kan worden gewijzigd. De tijdzone die JavaScript rapporteert komt van het besturingssysteem en de browser, en een gebruiker kan die wijzigen. Anti-detectiebrowsers en automatiseringsframeworks kunnen hem volledig overschrijven.

Dat laatste punt is waar dit overgaat van een opmaakdetail naar een beveiligingssignaal.

Waarom de browsertijdzone een fraude- en fingerprintingsignaal is

De tijdzone is een van de signalen die meegaan in device fingerprinting. Op zichzelf is hij laag-entropisch, maar hij wordt krachtig in combinatie met, en in tegenspraak met, andere signalen:

  • Tijdzone versus IP-geolocatie. Als het IP van de verbinding naar het ene land geolocaliseert maar de browser een tijdzone aan de andere kant van de wereld rapporteert, is die mismatch een klassiek teken van een VPN, proxy of een bot die op gehuurde infrastructuur draait. Dit is een kerninput voor impossible travel-detectie en VPN-detectie.
  • Tijdzone versus taal en TLS. Een consistent menselijk profiel heeft een samenhangende set signalen. Een gerapporteerde Europe/London-zone gekoppeld aan een locale en een TLS-fingerprint die niet passen, is het soort tegenspraak dat geautomatiseerde fraude produceert.
  • Een vervalste waarde is zelf een signaal. Wanneer de aan JavaScript gerapporteerde tijdzone niet overeenkomt met andere tijdmetingen, wijst die inconsistentie op een anti-detectiebrowser in plaats van een echte gebruiker.

Daarom verraadt een gestolen inloggegeven die vanaf de machine van een aanvaller wordt gebruikt, of een AI-agent die een headless browser aanstuurt, zich vaak bij de tijdzone: de waarde spreekt óf het netwerk tegen óf is te schoon om echt te zijn. cside leest de browsertijdzone naast meer dan 100 andere signalen om precies deze mismatches te vangen, en voedt in realtime beslissingen over accountovername en botdetectie.

Verder lezen

Mike Kutlu
Client-Side Security Consultant

Client-side security consultant at cside. 10+ years of experience implementing technology solutions for enterprises (previously at Oracle, Cloudflare, and Splunk). Now helping teams use client-side intelligence to catch & reduce fraud.

FAQ

Frequently Asked Questions

Roep Intl.DateTimeFormat().resolvedOptions().timeZone aan. Het geeft de IANA-tijdzonenaam van de browser terug, zoals America/New_York of Europe/London, in elke moderne browser. Er is geen bibliotheek nodig.

new Date().getTimezoneOffset() geeft het verschil met UTC in minuten terug, maar met omgekeerd teken: een zone die UTC-5 is, geeft 300 terug, niet -300. Het vertelt bovendien alleen de huidige offset, die verandert met de zomertijd, niet in welke zone de gebruiker zich bevindt. Intl.DateTimeFormat().resolvedOptions().timeZone geeft de stabiele IANA-naam terug, wat je wilt opslaan of als signaal gebruiken.

Hij kan betrouwbaar worden uitgelezen, maar hij kan ook worden vervalst. Een gebruiker kan de tijdzone van zijn besturingssysteem wijzigen, en anti-detectiebrowsers en automatiseringstools kunnen de waarde die aan JavaScript wordt teruggegeven overschrijven. Daarom vergelijken fraudesystemen de gerapporteerde tijdzone met andere signalen, zoals IP-geolocatie en de TLS-fingerprint, in plaats van er alleen op te vertrouwen.

Monitor en beveilig je third-party scripts

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Start gratis, of probeer Business met een proefperiode van 14 dagen.

cside-dashboardinterface met scriptmonitoring en beveiligingsanalyses
Related Articles
Boek een demo