All tools

Timezone & locale

Your timezone, whether the Date offset agrees with it across historical dates, and whether it matches your IP country. A spoofed zone breaks on DST history.

Full check

What to do about it

Zone ≠ IP

Set the browser or OS timezone to one used in the IP country. Countries with several zones need the right one for the city the IP resolves to.

Date overrides

Change the zone at the browser or OS level. A Date shim with one fixed offset fails on historical DST rules and leaves own properties on Date instances.

Language

Accept-Language, navigator.languages and the Intl locale should be one list, plausible for the country: a Russian UI locale under a US address is a mismatch sites notice.

Intl constructors

Patching only DateTimeFormat leaves NumberFormat, Collator and PluralRules on the real locale. Set the locale for the whole browser instead.

How this test works

The Intl timezone is read and compared with the Date offset now and at ten instants between 1990 and 2035, with the zone name embedded in Date.toString(), and with the countries the zone is used in versus the country of the IP address. The locale is read from the headers, from navigator and from every Intl constructor, which must all agree on a real browser.