2010-12-06 10 views
1

私はjavascriptのgetDate関数に非常に奇妙な問題があります。 dateがUNIXタイムスタンプであるJavaScriptのgetDateの問題

var day = new Date(date); 

する:いくつかの機能の開始時に、私が使用してDateオブジェクトを作成しました。

私は日のオブジェクトを変更しませんが、しばらくしてからこのオブジェクトの月の日を取得しようとしますが、day.getDate()は私に間違った価値を与え続けます。例えば

1290297600-15-0-1970-23-24-57

や他のいくつかの時点で結果は次のとおりです:1290384000-15-0-1970-23-26-24

そして、あなたがルックアップする場合は、これは、奇妙な部分です

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

は私に次のような結果になりますunixtimestamp 1290297600 2010年11月21日の00:00:00時にタイムスタンプが表示されます(1290384000は翌日、同じ時刻です)
タイムスタンプはcor私はそれが私に与える日付の意味を作ることができません。
これはどのブラウザでも発生します。

私は間違っていますか?

答えて

2

ここで問題となるのは、JavaScriptのDate objectがUnixのタイムスタンプ(エポックからの秒数)を取らないということです。実際にはエポックから数ミリ秒かかります。 date変数に1000を掛ければ、正しい出力が得られます。

Example here

+0

あなたは今日の私のヒーローです!本当にありがとう、完全にそれを見落とした。 – Tiddo

0

時間= Unixタイムスタンプ形式。私はその時間に64800秒を追加して、Mountain Standard Timeに変換されました。

*タイムスタンプ24 * 60 * 60

.getTime()* 1000年//ミリ秒24 * 60 * 60

民間のDateField dateField1。 ///////////////////////

dateField1 = new DateField( "Date:"、DateField.DATE); f.append(dateField1);

日付d =新しい日付(); dateField1.setDate(d);

String TimeSeg = String.valueOf(((dateField1.getDate()。getTime()/ 1000)+64800));