2014-10-08 36 views
1

我得到了這個奇怪的JavaScript錯誤,我似乎可以工作或修復。Javascript日期問題,不正確的時區

我正在使用一些代碼來創建2個JavaScript日期,以將事件插入日曆組件。 的日期都是建立在以下方式:

var endDate = new Date(); 
var startDate = new Date(); 

startDate.setDate(startDateDay); 
startDate.setMonth(startDateMonth); 
startDate.setFullYear(startDateYear); 
startDate.setHours(2, 0, 0, 0); 

endDate.setDate(endDateDay); 
endDate.setMonth(endDateMonth); 
endDate.setFullYear(endDateYear); 
endDate.setHours(2, 0, 0, 0); 

使用整數因此,日期將被建成。這些整數是由輸入決定的,使用調試器我可以看到100%正確的輸入。 現在,生病描述了3個演練,2它正確地進行,1出現錯誤。


使用以下輸入:

endDateDay = 20 
endDateMonth = 9 
endDateYear = 2014 

提供了以下日期對象作爲結果:

Tue Oct 20 2014 02:00:00 GMT+0200 (W. Europe Daylight Time) 

使用此輸入:

endDateDay = 13 
endDateMonth = 9 
endDateYear = 2014 

提供了以下日期對象作爲結果:

Tue Oct 13 2014 02:00:00 GMT+0200 (W. Europe Daylight Time) 

現在,使用此輸入:

endDateDay = 27 
endDateMonth = 9 
endDateYear = 2014 

提供了以下日期對象作爲結果:

Mon Oct 27 2014 02:00:00 **GMT+0100** (W. Europe Standard Time) 

正如你可以看到,由於某種奇怪的原因,TimeZone已關閉。這給我的應用程序中的錯誤,我需要找到一種方法來解決它。儘管如此,我找不到任何解決方案,更不用說理解爲什麼它實際發生了。

PS:我使用谷歌瀏覽器

+1

它以什麼方式關閉?西歐的鐘表在10月26日回到標準時間......你期望什麼?爲什麼? – 2014-10-08 11:54:13

+0

看看tiemzones,一個是** Daylight **時間,另一個是**標準**時間(儘管時區名稱可能與您習慣的不同)。 – RobG 2014-10-08 12:20:53

回答

2

答案確實在夏令時間差,這是我完全地監督。感謝您發現這一點,我也找到了解決我的問題。

我用這個鏈接來進一步幫助我,可能是幫助別人的未來: http://javascript.about.com/library/bldst.htm

乾杯!