Subject: Re: [PATCH 1/1] gitweb: javascript ability to adjust time based on timezone

From: Jakub Narebski <[email-masked]>
Date: Thu, 24 Mar 2011 22:23:22 +0100

On Thu, 24 Mar 2011, J.H. wrote:
> On 03/23/2011 10:23 PM, Kevin Cernekee wrote:
> > On Wed, Mar 23, 2011 at 5:08 PM, John 'Warthog9' Hawley
> > <[email-masked]> wrote:

> > > This patch takes the same basic goal, display the appropriate times
> > > in a given timezone, and implements it in Javascript.  This requires
> > > adding / using a new class, dtcommit, which is based on the
> > > dtstart/dtend microformats.  Appropriate commit dates are wrapped in
> > > a span with this class, and a title of the time in ISO8601 format.

[...]
> > 4) IE6 does not seem to like ISO 8601 format:
> > 
> > x = new Date("2011-03-09T03:29:09Z");
> > 
> > This sets all fields to NaN.  I suspect that getTime() values
> > (milliseconds since 1970-01-01) are more portable.
> 
> That's actually an issue, my understanding (as well as the understanding
> of all of the microformats that are out there) is that ISO 8601 is the
> "correct" format that these things should be in.  If IE6 can't handle
> that (and I'll admit I don't have trivial access to older IEs for
> testing right now), then there is a *LOT* of Javascript out there that
> is just broken.
> 
> Going a bit further, I would draw the line in the sand for gitweb
> supporting IE as a browser somewhere around IE 7 or 8 at this point as well:
> 
> http://www.w3schools.com/browsers/browsers_explorer.asp
> 
> IE 5, 6 & 7 look to have negligible market share at best as it is, and
> I'm not sure it's worth trying to go back and support IE6 or anything prior.

Another solution would be check if browser supports required JavaScript
features, and if not behave as if JavaScript was disabled (graceful
degradation).

[...]
> > Some other things that popped up:
> > 
> > 5) Some timezone offsets are not a whole number of hours.  Bangalore
> > time is GMT +0530, for instance.
> 
> The code is capable of handling this, it's mainly an issue of interface,
> which I'll bring up in response to 6 & 7

This is not issue of only interface: date.js has 'tzOffset / 100 * msPerHr'
and this do not support fractional offsets.  +0530 is 5.5 hours, not 5.3.

-- 
Jakub Narebski
Poland