Every number on World Time Lab comes from a published algorithm or a named public dataset. This page says which, how current each one is, and where each one stops being reliable. If a value here disagrees with an official source, the official source wins.
Last reviewed July 21, 2026Site version v2026.7.5197 countries, 1,307 city pages
World Time Lab ships as static files and computes in your browser, so every row below runs on your own device from data you already downloaded.
Each computed value on World Time Lab, the method behind it, the module that implements it, and its stated accuracy
What you see
How it is produced
Implemented in
Stated accuracy
Local time and UTC offset
The IANA time zone database built into your browser, read through Intl
src/lib/time.ts
Exact, as current as your device's database
Day and night, sun altitude
NOAA solar position equations evaluated per pixel
src/lib/solar.ts
Better than a tenth of a degree of altitude for this era
Sunrise, sunset, day length
Hour angle at a solar altitude of -0.833 degrees
src/lib/solar.ts
About a minute outside polar latitudes
Twilight and golden hour
The same crossing solver at -6, -12, -18 and +6 degrees
src/lib/solar.ts
About a minute, same convention
Moon phase and phase instants
Meeus, Astronomical Algorithms chapter 49, truncated series
src/lib/lunar.ts
Within one to two minutes for the current era
Moon position: altitude, azimuth, distance
Meeus chapter 47, the truncated ELP-2000/82 series, reduced to your own horizon with the rigorous parallax of chapter 40
src/lib/moon-position.ts
Within 0.002 degrees of NASA JPL Horizons at the points checked
Moonrise and moonset
Five minute sampling of the moon's height against its own horizon, then bisection to the second
src/lib/moon-position.ts
The minute the US Naval Observatory publishes, at 24 of 25 checked values
Equinoxes and solstices
Bisection on the sun's declination crossing
src/lib/dates.ts
To the minute displayed
Eclipse circumstances where you are
The Besselian elements NASA GSFC publishes for each eclipse, solved for your own coordinates
src/lib/eclipse-local.ts
Maximum within 8 s of NASA's published central line, worst of 670 rows
City-to-city distance
Haversine on a sphere of radius 6,371 km
src/components/distance-tool.tsx
Within a few tenths of a percent of a geodesic distance
Solar position, sunrise and sunset
Sun times use the standard NOAA solar position equations, the same simplification of Jean Meeus's work that the NOAA solar calculator is built on. The chain is: days since the J2000.0 epoch, the sun's mean anomaly and mean longitude, apparent ecliptic longitude with the two largest equation-of-center terms, then declination and right ascension through the obliquity of the ecliptic. The subsolar point follows from declination and the equation of time; sun altitude anywhere is a spherical-trigonometry step from there.
Accuracy. Sunrise and sunset land within about a minute of published almanac values at non-polar latitudes, which is why the site displays times to the minute and never to the second.
The horizon convention
Rise and set are solved at a geometric sun altitude of -0.833 degrees, not zero. That figure is two allowances added together: about 34 arcminutesof mean atmospheric refraction lifting the sun's image while it is still geometrically below the horizon, and about 16 arcminutesof solar semidiameter, because sunrise is conventionally the first edge of the disc rather than its center. It is the same convention used by national almanacs, so World Time Lab's times are comparable with theirs.
Twilight and golden hour
The same crossing solver runs at other altitudes: civil twilight at -6 degrees, nautical at -12 degrees, astronomical at -18 degrees, and the golden hour boundary at +6 degrees. On the globe, night is not a drawn polygon: it is a field of sun altitude sampled per pixel and ramped smoothly through those bands, which is why the terminator has a warm edge instead of a hard line.
Where it stops
Inside the polar circles the sun may not cross the horizon at all. World Time Lab says "midnight sun" or "polar night" explicitly rather than printing a meaningless time.
Very close to those limits, when the sun grazes the horizon, a minute of model error becomes a much larger error in the printed time. Treat high-latitude edge dates as approximate.
The model assumes a flat, unobstructed horizon at sea level and standard refraction. See the unmodeled effects below.
Moon phases and moon position
Phase instants come from Meeus, Astronomical Algorithms, chapter 49: the mean phase time for a lunation index, corrected by the truncated periodic series in the sun and moon's anomalies and argument of latitude. The mean synodic month used is 29.530588861 days, and in that series the difference between Terrestrial Time and UTC is approximated at the current-era value of about 69 s. The small planetary terms are omitted, so a phase instant is good to a few minutes. Phase illumination and the drawn moon disc follow from the real sun, moon and Earth geometry rather than from a cosine of the moon's age.
Where the moon is
Where the moon is comes from a different chapter and a different series. Chapter 47 gives the truncated ELP-2000/82 theory: the sixty largest periodic terms in longitude and distance, and sixty more in latitude, which Meeus states is good to about ten arcseconds in ecliptic longitude and four arcseconds in latitude. Those coordinates are corrected for nutation, converted to right ascension and declination through the true obliquity of the date, and carried into your sky by the apparent sidereal time at Greenwich.
Delta T, the gap between Terrestrial Time and universal time, is taken here from the Espenak and Meeus polynomial expressions published by NASA Goddard, which cover 1900 to 2150. Outside that span the long-period parabola is used and the answer is an extrapolation.
The moon is close enough that where you stand matters. An observer on the surface sees it up to about a degree lower than an observer at the centre of the Earth would, so the geocentric position is reduced to a topocentric one by the rigorous method of chapter 40, including the flattening of the Earth in the observer's rho sine and rho cosine terms. Dropping that correction moves a moonrise by several minutes. The topocentric semidiameter is computed the same way, which is why the disc grows slightly as the moon climbs toward the zenith.
The moon's own horizon
Rise and set are solved at the moon's horizon, not the sun's. For the sun this site uses an altitude of -0.833 degrees, refraction plus the solar semidiameter. For the moon the standard altitude is 0.7275 pi minus 0.5667 degrees, where pi is the equatorial horizontal parallax at that moment. At the moon's mean distance that comes out at about +0.125 degrees: the centre of the moon is geometrically above the horizon when its upper limb appears, the opposite sign to the sun, because the parallax term outweighs refraction and semidiameter together. The 0.5667 is the same 34 arcminutesof horizon refraction used for the sun; the 0.7275 is one minus the ratio 0.272481 of the moon's semidiameter to its parallax.
Finding rise and set
The crossing is found by search, not by a closed-form half-day arc. A solar formula can assume the sun's declination barely moves across a day; the moon's can shift by more than six degrees, and successive moonrises are about 24 h 50 mapart rather than twenty four hours. So the solver walks the real civil day in five minute steps, brackets every sign change of the moon's height against that horizon, and bisects each bracket to the second. A quadratic fitted through each consecutive triple of samples catches grazing events, where the moon appears and drops back inside a single step.
The day being searched is the genuine local day, found by binary search on your browser's own IANA database, so a 23 hour spring-forward day and a 25 hour fall-back day are searched at their real length, and a calendar date a zone never had returns nothing rather than a guess.
Altitudes above the horizon include standard sea-level refraction from Saemundsson's formula, as given in chapter 16. Below the horizon that formula is an extrapolation of something nobody can observe, so it is faded smoothly to zero between one and four degrees below the horizon and is exactly zero deeper than that: an altitude quoted for a moon well under the horizon is the plain geometric one. It is faded rather than cut off because the number is printed, and a hard cut puts a step in it that a reader dragging the time slider through a low moon would watch jump.
One definition of a phase name
Phase names come from one definition only, the moon's elongation from the sun. Almanacs put first quarter at exactly ninety degrees of elongation and last quarter at two hundred and seventy, and this site holds each of those names for six and a half degrees either side, about half a day. Naming phases from the moon's age in days looks equivalent and is not: the orbit is elliptical, so age and elongation drift apart. The moon tool and the geometry diagram read that one definition, so they cannot print different names for the same moment.
Accuracy. Phase instants were checked against a published phase table for every phase of 2026 and agreed within one to two minutes throughout. Position was checked against NASA JPL Horizons, where azimuth and altitude both agreed within 0.002 degrees. Rise, set and transit were checked against the US Naval Observatory data services on eight days at five places, from Sydney to Fairbanks, including two days with two moonrises, a day with two moonsets, a day with no moonset and a spring-forward day with no moonrise. Twenty four of those twenty five published values print exactly the minute the observatory publishes; the exception is a grazing moonrise at Fairbanks on 2026-07-28, which this site prints one minute later. The regression suite fails at two minutes. Two further days at Longyearbyen check the polar cases, where the observatory reports the moon as continuously above or continuously below the horizon and this site has to say the same.
Limits. All of the above assumes a flat horizon at sea level and standard refraction. A hill to the east delays moonrise and standing on one brings it forward, so terrain moves a real moonrise by minutes, and by far more in a valley. Your height above sea level is not corrected for. Real refraction varies with pressure and temperature and can move a rise or set by a minute or two on its own. Phase instants are given in UTC, which is a global moment rather than a local calendar date.
Time zones and daylight saving
World Time Lab ships no time zone data. Every offset, abbreviation and daylight saving transition comes from the IANA time zone database that is already inside your browser, read through the standard Intl.DateTimeFormat interface. The site supplies only zone identifiers, such as America/New_York, and asks your device what those mean on the date in question.
Two consequences follow, and both are honest advantages:
Rules are as current as your browser. When a country changes its clocks, you get the correction the moment your browser or operating system updates its database, without waiting for World Time Lab to ship anything.
An outdated device gives outdated answers. A phone that has not been updated for years can hold pre-change rules for a country that has since moved. If a zone looks wrong, updating the device is the first thing to try.
What World Time Lab does maintain is the curated mapping from a country to the zones it actually uses, with a representative coordinate for each, covering all 197 countries. That list was last verified in July 2026, and a build-time validator constructs a formatter for every identifier in it, so an invalid or retired zone id cannot reach a page.
Some deliberate editorial calls sit in that mapping. China is shown with its single official zone plus a note about unofficial Xinjiang time. Zones whose clocks have behaved identically on both sample dates of the year are merged into one card rather than repeated under several names.
Eclipses
The 24solar and lunar eclipses listed cover 2026 through 2030 and come from NASA Goddard Space Flight Center's Five Millennium Catalogs of Solar and Lunar Eclipses. Greatest-eclipse instants were converted from Terrestrial Time to UTC with the Delta-T value NASA publishes for each individual eclipse, which runs from 75.0 s to 78.1 s across this window, rather than one assumed figure for the era.
What happens where you are is computed
For a solar eclipse the site solves the standard Besselian-element local circumstances from the polynomial elements NASA publishes for that eclipse: first and last contact, the start and end of totality or annularity, the instant of maximum, the fraction of the sun's diameter and of its area covered, and the sun's altitude and bearing at each of those moments. None of it is interpolated from the greatest-eclipse time. Where local maximum falls with the sun below your horizon, the site solves the moment the sun crosses that horizon as well, and leads with the coverage there, because a maximum nobody at that place can watch is not an answer to whether you will see anything.
A lunar eclipse happens at the same instant everywhere, so its contact times are the catalog's own published durations around greatest eclipse, and only the moon's position in your sky is computed locally.
Accuracy. Every one of the 670 rows NASA publishes for the central lines of the eight central eclipses in this window is fed back through the solver: the computed instant of maximum lands within 8 s of the published time at worst, and the computed length of totality or annularity within a fifth of a second. Lunar contact instants agree within 4 s of an independently published contact table. Local times are printed to the second because the solution really is that precise, but weather, terrain and a real horizon will matter far more than the arithmetic.
The visibility map says what it is. The shaded region is that same solution sampled every three degrees of latitude and longitude, so its edge is stepped rather than traced. The narrow band drawn over it is not sampled at all: it is NASA's published central path, and it appears only for the eclipses NASA publishes one for.
Limits.Every observer is placed at sea level on the WGS-84 ellipsoid, so your elevation is not modelled. The moon is treated as a smooth disc of the standard radius, which means the lunar limb profile that produces Baily's beads, and that moves the edge of the path of totality by a kilometre or two, is not predicted. The sun's altitude at each contact is geometric, so an eclipse placed a fraction of a degree below the horizon may in reality be refracted into view. Your skyline and the weather are not modelled either, and a lunar eclipse has no local magnitude at all: everyone sees the same moon. The full list is kept in docs/ECLIPSE-DATA.md.
Maps, boundaries and regions
Natural Earth country outlines (1:110 million scale)
License
Public domain
Used for
The globe's land shapes, hover hit testing, and country selection.
Currency
A fixed snapshot shipped with the site, about 105 KB.
At this resolution the file carries 177 country geometries, so small states and island nations have no polygon at all. Rather than leaving them off the map, World Time Lab draws them as explicit projected dots that can be hovered and selected. Coastlines are generalized: this is a globe for reading clocks, not a chart for navigation.
timezone-boundary-builder
License
Open Database License (ODbL)
Used for
Real zone boundaries inside countries that use more than one clock.
Currency
A pinned release, processed into about 150 KB of polygons.
Zone identifiers that behaved identically on both a January and a July sample date are merged into one region, which keeps Phoenix distinct from Denver while collapsing duplicates that differ only in name. Boundaries are simplified for drawing, so a polygon edge is not a survey line.
Natural Earth administrative lines (1:10 million scale)
License
Public domain
Used for
State and province boundary lines, fetched for the country you select.
Coverage
Every country that has first-level divisions. The remainder are microstates with none, and they are left alone rather than given an invented region.
geoBoundaries gbOpen, ADM1 regions
License
Open, but varying by country. Each one is recorded per country.
Used for
Naming the state, province, or region under your pointer, independently of time zone boundaries.
Currency
Source years differ by country, ranging from 2005 to 2023, and the build records each country's source year, license, and hashes.
This is the least uniform dataset on the site, so the interface never calls it exact or current. A recent reorganization of provinces may not be reflected for every country, and one administrative region can span several civil clocks, which is why region identity is kept separate from zone shading.
On disputed borders. World Time Lab draws the boundaries present in these public datasets and adds nothing of its own. Where sovereignty is disputed, the shape on the map reflects the dataset, not a position on the dispute. Territories that are not sovereign states still get correct local clocks rather than being left as blank ground.
Cities and place names
Search is powered by a snapshot of the GeoNames cities500 extract, licensed CC BY 4.0, covering more than 230,000 populated places plus administrative seats worldwide. The July 2026 snapshot is transformed into prefix-sharded files so that typing two characters downloads one small slice instead of a global index; nothing about your query is sent to a search service.
A separate, smaller registry drives the 1,307 static city pages, built from the same source and restricted to capitals and larger cities so that each page carries real distinct data rather than a swapped name.
Limits. Populations are as of the snapshot and are not live. Coordinates are the GeoNames representative point for a settlement, which may sit anywhere within a sprawling metropolitan area, so sun times can differ by a few seconds from your exact street. Some places carry several spellings and only the primary name plus its ASCII form are indexed.
Climate and the Seasons layer
The globe's Seasons view colors the world by the season each place is living through. It is built from the Kottek et al. 2006 world map of Koeppen-Geiger climate classification, a 0.5 degree grid, reduced to nine simplified groups and run-length encoded into about 42 KB that is fetched only when you switch to that view. Seasonal state is then pure climatology plus a hemisphere-local calendar: in the tropics the wet season is the high-sun half of the year.
This is climatology, not weather. It cannot tell you whether it is raining. It is a classification of long-term averages published in 2006, so it does not track shifts since then, and a coarse grid smooths over mountains, coasts, and microclimates.
Holidays and calendars
Calendar holiday sets are generated from Vacanza python-holidays (MIT licensed), covering country-level public holidays for the years the calendars display. Subdivision holidays are excluded, and any date the upstream library labels as estimated is deliberately dropped rather than printed as fact.
Limits. Public holidays are political. Dates move by proclamation, get substituted when they fall at a weekend, and vary by state, province, canton, or emirate in ways a country-level list cannot express. Observances fixed by lunar or lunisolar calendars, or by a local moon sighting, are announced by religious authorities and may not match any table published in advance. Treat these lists as a planning aid and confirm anything that matters against an official gazette.
Calendar grids themselves are computed: ISO week numbering, weekday alignment, and leap years follow the proleptic Gregorian calendar, which is why dates far in the past are historically inaccurate for countries that adopted the Gregorian reform later.
Planet Lab
The Planet Lab is an educational approximation, and it says so on every screen. Temperature is never an input: it is computed from a zero-dimensional energy balance, with albedo assembled from surface, ice and cloud, greenhouse warming parameterized per atmosphere class, and the ice-albedo feedback iterated to a fixed point, which is why melting the ice can run away. Orbital periods use Kepler's third law, habitable zone bounds follow Kopparapu et al. (2013) effective fluxes, and surface gravity and escape velocity come from radius and bulk density.
A validation script must reproduce the observed conditions of Earth, Mars, Venus and Mercury within stated tolerances before the simulator ships. That is a sanity gate, not a claim of research-grade fidelity: there is no general circulation model, no atmospheric chemistry, no ocean, and no weather. Habitability is presented as a broad scenario indicator, never as a verdict, and Expert mode shows the actual equations so you can see what is being asserted.
Computed, illustrative, unmodeled
Reading any visualization well means knowing which parts are measurements and which parts are drawing. World Time Lab splits three ways.
Computed
Numbers you can check against another source. Wrong values here are bugs.
Clock times, dates, and UTC offsets
Sunrise, sunset, twilight, day length
Sun altitude and the subsolar point
Moon phase and phase instants
Moonrise, moonset, and the moon's altitude and azimuth
Eclipse contact times, magnitude, and obscuration at your coordinates
Equinox and solstice instants
Date arithmetic, week numbers, countdowns
Great-circle distances and bearings
Illustrative
Drawn to be legible, not to scale. Do not measure them; they carry no numeric claim.
The sun's bloom, rays, and on-screen size
Starfield, atmosphere halo, and limb shading
Orbit diagrams and season lab drawings
Planet Lab surface textures and clouds
Generalized coastlines and simplified boundaries
Seasons colors, which encode climate class rather than temperature
Unmodeled
Real effects World Time Lab does not attempt. These set the floor on its accuracy.
Terrain, buildings, and horizon obstruction
Your elevation above sea level
Non-standard refraction from unusual pressure or temperature
Local weather and cloud cover
Leap seconds, which browser time does not represent
Historical time zone rules before your browser's database coverage
Future rule changes not yet announced or not yet in your device
The moon's limb profile, which shapes the exact edge of totality
The practical summary: a difference of a minute or two from an almanac is expected behavior, a difference of ten minutes usually means terrain or elevation, and a difference of an hour means a time zone rule, which is worth reporting.
Validation before release
Data correctness is enforced by scripts that must pass before a build is considered shippable, not by hoping a reviewer notices:
Dataset validation constructs a real formatter for every time zone identifier, checks that every country maps to geometry that exists in the map file, sanity-checks coordinates, and re-runs known-coordinate hit tests so a regression in the map hit testing cannot ship silently.
Physics validation re-derives the simulator against Earth, Mars, Venus and Mercury and fails the build if any check drifts.
Calendar validation re-checks the generated holiday tables and the calendar export format against their sources.
Identity validation refuses to publish under a placeholder domain or a placeholder publisher id, which is why an unconfigured build blocks indexing instead of guessing.
Astronomical routines carry regression checks against published almanac values for reference cities and dates, including a northern midsummer sunrise and sunset, a northern midwinter pair, the solstice declination limits, and the equation of time near its November peak.
The moon and eclipse models are held to the same standard against outside authorities: US Naval Observatory rise, set and transit times, NASA JPL Horizons positions, Meeus's own worked example for the lunar series, and NASA GSFC's eclipse catalogs, published greatest-eclipse figures and central-path tables. Every expected value in those suites was fetched from the named authority, never produced by running this code and freezing the answer.
How data is kept current
Time zone rules: continuously, through your browser. Nothing to update here.
Country to zone mapping: reviewed and stamped. Last verified July 2026.
City data, administrative regions, climate grid, holiday tables: regenerated from upstream sources by pinned build scripts, not hand-edited, so a refresh is reproducible.
Eclipse catalog: regenerated by a build script from the same NASA catalogs, per-eclipse element pages and path tables as the window advances.
Everything else: tracked by the site version in the header and the build date in the footer.
Found something that disagrees with an authoritative source? That is exactly what the corrections page is for, and it explains what to include so the fix can be verified quickly.