2011-10-26 25 views
5

28,29,30,31日の月を考慮して30日後の日付を設定する必要があります。したがって、日付をスキップせず、正確に30今から数日。どうやってやるの?Javascript - 日付を30日後に設定

+1

[日付](https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/Date)を参照してください。 –

答えて

25

JavaScriptの "日付()" オブジェクトは、あなたがカバー持っている:ちょうど正しいことをやる

var future = new Date(); 
future.setDate(future.getDate() + 30); 

。 (それは日の-月のゲッター/セッターは、彼らが名前を持っていることを少し紛らわしいです。)

+1

私はこれが少なくともdocs:https:// developersに従って動作しないと思います。 mozilla.org/ja/JavaScript/Reference/Global_Objects/Date/setDate 'setDate'へのパラメータは1から31の間でなければなりません。しかし、私はこれを一度使って覚えているので、多分それはあります。 – Domenic

+0

ありがとう、それは動作することを確認できますか? – Victor

+0

'new Date(future.setDate(future.getDate()+ 30))。toString();'を追加すると、私の作品になります。 – meagar

3
var now = new Date(); 
var THIRTY_DAYS = 30 * 24 * 60 * 60 * 1000; 
var thirtyDaysFromNow = now + THIRTY_DAYS; 
+0

私のためには機能しません。 'thirtyDaysFromNow.toString()'は "無効な日付"を返します。 'new Date(now + )'は、「無効な日付」または 'now'と同じ値を生成します。私はこれがあなたが思うとは思わないと思う。 – meagar

+3

これはうまくいくでしょうが、代わりに 'var now = new Date()。getTime();' –

+0

を使ってください。良いcatch @meagarと@John Strickler; 「新しい日付」は間違っていた。 – Domenic

5

私が操作し、解析に役立ち、および書式の日付日付ラッパー・ライブラリーを書きました。ここで

https://github.com/timrwood/moment

あなたは簡単な構文なし外部ライブラリとネイティブDateオブジェクトを使用してMoment.js

var inThirtyDays = moment().add('days', 30); 
3

でそれを行うだろうかです:

var future = new Date('Jan 1, 2014'); 

future.setTime(future.getTime() + 30 * 24 * 60 * 60 * 1000); // Jan 31, 2014 

日のsetTime getTime関数は1970年1月1日(link)からのミリ秒を使用します。

関連する問題