2016-10-14 9 views
0

タイムスタンプを使用して新しいDateオブジェクトを作成します。そのオブジェクトをプリントアウトすると、正しい日付と時刻が返されます。しかし、getDate()とgetTime()を使用しようとすると、間違った番号が返されます。Javascript getDate()とgetMonth()が間違った結果を返します

マイコード:

var textDate = new Date(timestamp); 

console.log(timestamp); 
console.log(textDate); 
console.log(textDate.getDate(),textDate.getMonth(),textDate.getFullYear()); 

マイコンソール結果:私はTEXTDATE変数から正しい日付と月を取得できますか

1476483081000 
Date 2016-10-14T22:11:21.000Z 
15 9 2016 

+1

月はゼロベースなので、10月は実際には9となり、日付はおそらくタイムゾーンに合わせて調整されます – adeneo

+0

重複:[javascript date to string](http://stackoverflow.com/質問/ 5914020/javascript-date-to-string) – jedi

+0

月が正しいです。 getUTCDate()とgetUTCHours()を使用すると、日付に関する問題が解決されました。ありがとうございました! –

答えて

0

getMonth()メソッドは、日付を印刷するとき、それはタイムゾーンに依存して0から11

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getMonth

に月に戻ります。 GMTから2時間離れた時間帯にいる場合は、22:11が新しい日に移動する可能性があります。これはおそらくgetDate()がデクストデーを返す理由です。

+0

タイムゾーンに問題がありました。 getUTCDate()で解決されました。ありがとう! –

+0

タイムゾーンが気になる場合は、最初にタイムスタンプからタイムゾーンを削除してください。 'new Date(timestamp - new Date()。getTimezoneOffset())' – Simon

関連する問題