これが私が発見したものです。2012 年は 10 月 4 日の深夜から 10 月 5 日の深夜まで 25 時間あります。世界のどこかには、私が知らない dst があるのではないでしょうか?
javascripts innate getTime: を呼び出すとき - IE と Mozilla の両方で。- これはまだクライアント側にあります。通常、1 日は 86400 秒で、10 月 5 日と 4 日の差は 90000 です (さらに 1 時間) - 2012 でのみ失敗します。-> 07/05/2011 – 10/05/2011 動作します...2012 動作しません。-2012 年 7 月 4 日 – 2012 年 4 月 10 日動作します。
これはコードの抜粋です。要素は「mm/dd/yyyy」形式の文字列です。
var fromDateElement = document.getElementById("filterFromDate");
var toDateElement = document.getElementById("filterToDate");
if (fromDateElement == null || fromDateElement.value == ""
|| toDateElement == null || toDateElement.value == "") {
alert(dojoCallGetLocalizedMessage("please.enter.filter.dates"));
return false;
}
var fromArr = fromDateElement.value.split("/");
var toArr = toDateElement.value.split("/");
var timeSpread = (new Date(toArr[2],toArr[0],toArr[1]).getTime()) -
(new Date(fromArr[2],fromArr[0],fromArr[1]).getTime());
if (timeSpread > <%= ONE_DAY_IN_MILLIS %>) {
alert(dojoCallGetLocalizedMessage("not.a.day"));
return false;
}
return true;
(ミリ秒単位の 1 日は 864000000 に設定されます) さらに、10 月ではなく dst を取得するロジックがあります。