2010-12-06 61 views
1

我有一個非常奇怪的問題與JavaScript的getDate函數。在一些功能的開始,我已經創建使用Date對象:Javascript的getDate問題

var day = new Date(date); 

其中date是UNIX時間戳。

我不改變一天的對象,但過了一段時間,我試圖得到這個對象的月的一天,但day.getDate()不斷給我一個錯誤的價值。

例如:

alert(day.getTime() + "-" + day.getDate() + "-"+ day.getMonth() +"-" + day.getFullYear() + "-" + day.getHours() + "-" + day.getMinutes() + "-" + day.getSeconds()); 

讓我得到以下結果:1290297600-15-0-1970-23-24-57

,並在其他一些點的結果是:1290384000-15-0-1970-23-26-24

這是怪異的一部分,如果你查找的unixtimestamp 1290297600你會看到這是2010年11月21日00:00:00 gmt(1290384000是次日同時)的時間戳
時間戳是相同的直接,但我不能理解它給我的日期。
這發生在我身上的任何瀏覽器。

我在做什麼錯了?

回答

2

的這裏的問題是,在JavaScript中Date object不走Unix時間戳(自新紀元的秒數​​),它其實需要的毫秒自時代。如果你只是將你的date變量乘以1000,那麼你會得到正確的輸出。

Example here

+0

先生,你是我今天的英雄!非常感謝你,完全忽略了這一點。 – Tiddo 2010-12-06 22:02:50

0

時間= Unix時間戳格式。我增加了64800秒的時間,所以它將被轉換爲山區標準時間。

*時間戳24 * 60 * 60

.getTime()// 24毫秒* 60 * 60 * 1000

私人的DateField dateField1; ///////////////////////

dateField1 =新的DateField( 「日期:」,DateField.DATE); f.append(dateField1);

Date d = new Date(); dateField1.setDate(d);

字符串TimeSeg =將String.valueOf(((dateField1.getDate()的getTime()/ 1000)64800)。);