Closed GoogleCodeExporter closed 8 years ago
Funny you should mention this bug, yesterday afternoon we (Dan and I) had a
two+ hour
conversation directly related to that very function. We did not notice nor
anticipated the exception being thrown, and that's an easy fix to make, but the
root
of the problem is much more complicated... supporting the functionality across
all
Timezones globally.
I'm not entirely sure why/how the isDST function made it into core.js anyways.
Best I
can tell, we don't need it, we're not using it anywhere and obviously it was
originally built as just a stub.
There are several major problems with the JavaScript implementation of DST and
Timezones. Some being critical bugs that have gone unnoticed since JavaScript's
inception.
Combine those problems with the performance problems of the native Date object
and
we're being forced down the road of creating a whole new implementation of the
Date
object. That's not something I'm particularly looking forward to. There's been
some
discussion around this topic in the datejs forums
(http://www.datejs.com/forums/,
search for "Date2" if you're interested.
At the moment my opinion is the isDST() function will have to be moved into our
future Date2 implementation. That would mean removing the function completely
from
the current Datejs core.
I will publish a fix to solve the exception, and thankfully the function can
stand on
it's own, so removing from the core is less of an issue.
If we completely remove from the master source, anyone currently using isDST
can add
the patched function to their own library or manually tack it onto their
version of
date.js.
That is not a final decision. We have to discuss some more and I need to sleep
on the
decision before committing.
Original comment by geoff%co...@gtempaccount.com
on 19 Dec 2007 at 8:03
Changed the Title to "isDST() broken".
It was improperly named "isDate() broken".
Original comment by geoff%co...@gtempaccount.com
on 20 Dec 2007 at 12:15
We are removing the .isDST() function from the library. At least for the short
term.
There are several other related functions we would like to add, although I
think we
might group them all (including .isDST) into an optional module.
I'm marking this issue as [FIXED], although that's not exactly the best
description.
Basically we're just going to implement and expand on the function in a later
build.
Original comment by geoff%co...@gtempaccount.com
on 20 Dec 2007 at 12:20
For posterity, here's the last version of .isDST().
/**
* Determine whether Daylight Saving Time (DST) is in effect
* @return {Boolean} True if DST is in effect.
*/
$P.isDST = function () {
/* TODO: not sure if this is portable ... get from Date.CultureInfo? */
return this.toString().match(/(E|C|M|P)(S|D)T/)[2] == "D";
};
Original comment by geoff%co...@gtempaccount.com
on 20 Dec 2007 at 12:22
Original issue reported on code.google.com by
geoff%co...@gtempaccount.com
on 19 Dec 2007 at 7:56