これは、DateJSのかなり素晴らしい文法パーサーのバグのある実装が原因です。
基本的に、古いバージョンは組み込みのパーサーを使用できるかどうかを確認しました。新しいバージョンは文法解析を使用しようとしますが、最初に元の手順を試すのを忘れ、文法パーサーはタイムゾーンを使用できません(これはバグですが、別のもの)。
解析関数を次の関数に置き換えます。
$D.parse = function (s) {
var date, time, r = null;
if (!s) {
return null;
}
if (s instanceof Date) {
return s;
}
date = new Date(Date._parse(s));
time = date.getTime();
// The following will be FALSE if time is NaN which happens if date is an Invalid Date
// (yes, invalid dates are still date objects. Go figure.)
if (time === time) {
return date;
} else {
// try our grammar parser
try {
r = $D.Grammar.start.call({}, s.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1"));
} catch (e) {
return null;
}
return ((r[1].length === 0) ? r[0] : null);
}
};
コアコードの更新バージョン(および将来的に未解決のバグを修正する予定)は、次の場所で入手できます。
https://github.com/abritinthebay/datejs/