Long haul flights can be confusing. You start at some time zone, and hours later find yourself in another, but for the duration of the flight you exist in time zone limbo. Airlines serve breakfast, lunch, or dinner at somewhat arbitrary times, and the Sun’s position in the sky is not always helpful (flights between East Asia and North America pass through the polar circle, where the Sun can be up at midnight or down at midday). Indeed, local time on the plane is effectively squeezed or stretched compared to real time, in a non-linear way. This has nothing to do, of course, with relativistic time dilation, it is just a result of time zone offset at different locations on the surface of the Earth. Local time in this article is the approximate time on the ground below the aircraft, so a function of both universal time and location (mostly just the longitude).
I took this beautiful photo of the southern tip of Greenland (Cape Farewell Archipelago, with Ikeq Island roughly at the centre of the photo) about six hours into a flight from Budapest to Toronto departing at 12:50. Local time was about 14:30 and Sun was 50° above the horizon.
The algorithm
I created a small applet that lets you estimate the local time as a function of the time elapsed since departure, and how high the Sun is expected to be above the horizon. The algorithm makes a number of simplifications. It assumes that the Earth is a perfect sphere, that the flight path is a great circle (not often the case but a reasonable approximation), and that the flight speed is constant. The local time is the time on the ground below the aircraft, if the time zones were varying smoothly across the globe instead of depending on borders between countries and in discrete increments of usually one hour.
To use the applet, input the origin and destination, with departure and arrival times in the appropriate local time zones. If a city is chosen from the dropdown menu, then the correct timezone is used including the stupid daylight “saving” time adjustments. If a city’s coordinates are input manually, the time zone offset (in hours) is estimated by multiplying the longitude (in degrees) by 15 (without rounding).
In the top panel, the solid blue line is the approximate local time on the plane, while the translucent blue line is the local time at the point of origin (which obviously just increases linearly). The local time exactly coincides with ground time at departure, but there is usually a small offset at arrival because the algorithm ignores the discreteness of timezones. In the bottom panel, the solid orange line is the Sun’s approximate altitude above the horizon at the plane’s coordinates, while the translucent orange line is the altitude at the point of origin. Click the random button to randomly select origin, destination, and departure time. In this case, the arrival time is calculated assuming an average speed of 800 km/h and a great circle flight path.
Flights “going back in time”
Sometimes a flight lands when the local time at the destination on arrival is earlier than the local time at the origin on departure. This can happen in the following scenarios.
Eastward flights
When flying eastward, local time on the plane runs faster than ground clocks. However when flying in an easterly direction over the international date line (the 180° line of longitude; e.g. from Siberia to Alaska), 24 hours are subtracted from the local time. That is possibly the most common way to “go back in time” by flying across time zones. A flight from Beijing to Vancouver, for example, will usually take about 10.5 hours and land with the clock showing 5.5 hours before departure. That is in wintertime when the time zone difference between the two cities is 16 hours (in summertime the province of British Columbia practices stupid daylight “saving” time, so the time zone difference is 15 hours, leading to a smaller gain).
Westward flights
Short haul
When flying westward, local time on the plane runs slower than ground clocks, but usually in the same direction (i.e. forward in time). Because of the discreteness of time zones, a westward flight that crosses a time zone boundary and is shorter than the time zone difference (typically one hour) will “go back in time”. Examples for such short flight routes include Paris to London, and Phoenix to Las Vegas in winter (in summertime the state of Nevada practices stupid daylight “saving” time, so it is at the same time zone as Arizona).
Long haul
This is a more interesting type of flight, and very rare. It’s similar to the eastward flights across the international date line, except that the local time on the plane changes continuously, going “backward in time” in a more interesting way: a flight clock will appear to tick backwards for some portion of the flight. I actually couldn’t find any flight like that advertised but some come close, and with some good winds could actually qualify. Direct flights from Moscow to Los Angeles are advertised to take around 12.5 hours. Normally the time zone difference between the two cities is 10 hours (in winter…), so the clock at landing will show just 1.5 hours after the local time at departure. If a direct flight existed between Moscow and Seattle/Vancouver, it would hypothetically take just about 10.5 hours and transverse the same number of time zones, thus landing half an hour before departure time.