指定年月日からn日後の月日を返す


動作ブラウザ 【 IE:3.0   NN:2.0
Internet Explorer Netscape Navigator Opera iCab Safari
3.0x 4.0x 4.5 5.0x 5.5 6.0 2.0x 3.0x 4.0x 4.x 6.0 7.0 7.x 2.x 1.x
Windows - -
Macintosh - ×
UNIX - - - - - -

ポイント nmsec = n * 1000 * 60 * 60 * 24; msec = (new Date()).getTime(); dt = new Date(nmsec+msec); month = dt.getMonth() + 1; date = dt.getDate();
説  明 指定日後を求めるにはDateオブジェクトを生成する時に引数としてミリ秒を渡します。指定年月日からのn日後を求めるのでnew Date()でDateオブジェクトを作成した後にsetFullYear()、setMonth()、setDate()で年月日を指定します。設定後getTime()でミリ秒を取得します。n日後を求めるので1日あたりのミリ秒(86400000 = 1000*60*60*24)と先ほど求めたミリ秒数を加算し、new Date()で新しいDateオブジェクトを作成します。これでgetMonth()、getDate()などでn日後の日付情報を得ることができます。
サンプル <html> <head> <title>指定年月日からn日後の月日を返す</title> <script language="JavaScript"><!-- function calcMD(n) { y = 2004; m = 9; d = 30; n = eval(document.myFORM.days.value); nmsec = n * 1000 * 60 * 60 * 24; // 1日のミリ秒 msec = (new Date(""+y+"/"+m+"/"+d)).getTime(); dt = new Date(msec + nmsec ); month = dt.getMonth() + 1; date = dt.getDate(); alert(y+"年"+m+"月"+d+"日から"+n+"日後は"+month+"月"+date+"日です"); } // --></script> </head> <body> <form name="myFORM"> <input type="text" size="3" name="days">日後<br> <input type="button" VALUE="n日後の年月日を得る" onClick="calcMD()"> </form> </body> </html>
補足説明 Safari 1.2.xではDate()のパラメータに/形式での日付指定ができないため正常に動作しません。

■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!

写真素材 PIXTA