UseMod had a concept of "server time", and early versions of the main page stated that server time was US Pacific Time. The date on the main page was heroically updated manually by Malcolm Farmer, for example:
https://en.wikipedia.org/w/index.php?title=HomePage&diff=331652346&oldid=331652345
This archived RecentChanges gives you an idea of what the interface looked like, the timezone is not specified ($ScriptTZ was not set) but it is presumably all Pacific Time:
https://web.archive.org/web/20011015062802/http://www.wikipedia.com/wiki/Recent_Changes
UseMod stored dates in UNIX time (integer since epoch), which is implicitly UTC, but converted them to server time for display.
Magnus's Wikipedia script also stored dates in UTC format, and defaulted to server time for display. It had a user preference called "hourDiff" which was relative to server time. For example in special_recentchangeslayout.php:
$adjusted_time_sc = tsc ( $s->cur_timestamp ) + 3600 * $user->options["hourDiff"]; $day = date ( "l, F d, Y" , $adjusted_time_sc); $time = date ( "H:i" , $adjusted_time_sc ) ;
tsc() converts the database time to UNIX time.
There were actually no references to UTC or GMT in the code base, and it never calls gmdate() . So it seems Magnus more or less carried on the same UI time zone policy as UseMod. If it was installed on the same server as UseMod, then it presumably would have displayed Pacific Time.
On the other hand, the early version of phase3 I have here does make references to UTC, for example:
"timezonetext" => "Enter number of hours your local time differs from server time (UTC).",
Instead of converting database dates to server time, phase3's Language::date() and Language::time() just takes substrings of the database date:
if( $wgAmericanDates ) { $d = $this->getMonthAbbreviation( substr( $ts, 4, 2 ) ) . " " . (0 + substr( $ts, 6, 2 )) . ", " . substr( $ts, 0, 4 ); } else { $d = (0 + substr( $ts, 6, 2 )) . " " . $this->getMonthAbbreviation( substr( $ts, 4, 2 ) ) . " " . substr( $ts, 0, 4 ); }
So for the elevation of UTC as a standard in the UI, I think we can safely credit Lee Daniel Crocker.
-- Tim Starling
On 10/05/16 02:15, Brion Vibber wrote:
In 2001 when Magnus was writing the initial attempt at a custom wiki engine in PHP backed by MySQL, he chose to use the TIMESTAMP column type.
TIMESTAMPs in MySQL 3 were automatically filled out by the server at INSERT time, normalized to UTC, and exposed in the 14-digit YYYYMMDDHHMMSS format we still know and love today.
The first TIMESTAMP column in a row also got automatically updated when you changed something in a row, so we ended up switching them from TIMESTAMP type to text strings and just filled out the initial values on the PHP side. We could have used DATETIME but that would have been a slightly harder transition at the time, and would have introduced the fun of the server settings trying to give you local time half the time...
-- brion
On Mon, May 9, 2016 at 1:39 AM, David Gerard dgerard@gmail.com wrote:
Question about obscure historical detail: Who picked UTC as Wikimedia time? When was this, and what was the thought process?
(the answer is almost certainly "Brion or Jimbo, early 2001, it's the obvious choice", but I'm just curious as to details.)
- d.
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l