jsで日付の計算
- <!DOCTYPE html>
- <html lang="ja">
- <head>
- <meta charset="UTF-8">
- <title>jsで日付の計算</title>
- <script type="text/javascript" src="jquery-1.5.1.min.js"></script>
- <script type="text/javascript" src="knockout-2.1.0beta.js"></script>
- <style type="text/css">
- table
- {
- border-collapse:collapse;
- margin-top:0.5em;
- }
- th
- {
- background:#ffe0ff;
- }
- th, td
- {
- text-align:left;
- border:1px solid #ccc;
- padding:3px 5px;
- }
- </style>
- </head>
- <body>
- <h1>jsで日付の計算</h1>
- <p>
- 「<a href="//tips.recatnap.info/wiki/Js%E3%81%AE%E6%97%A5%E4%BB%98%E9%96%A2%E9%80%A3" target="_blank">Jsの日付関連</a>」のまとめ
- </p>
- <script type="text/javascript">
- function addDate(ymdDate, target, add)
- {
- addNum = parseFloat(add);
- yea = ymdDate.getFullYear();
- mon = ymdDate.getMonth();
- day = ymdDate.getDate();
- if(target == "y")
- {
- yea += addNum;
- }
- else if(target == "m")
- {
- mon += addNum;
- }
- else if(target == "d")
- {
- day += addNum;
- }
- return new Date(yea, mon, day);
- }
- document.write( "<h2>Date()の引数を「2012年5月1日」にする</h2>" );
- document.write( "<table>" );
- document.write( "<tr><th>new Date(2012, 5, 1)の結果</th><td>" + new Date(2012, 5, 1) + "</td></tr>" );
- document.write( "<tr><th>new Date(2012, 5-1, 1)の結果</th><td>" + new Date(2012, 5-1, 1) + "</td></tr>" );
- document.write( "<tr><th>new Date(\"2012/05/01\")の結果</th><td>" + new Date("2012/05/01") + "</td></tr>" );
- document.write( "</table>" );
-
- // ベースになる年月日にn年(or n月 or n日)を足す
- target = "d"; // y、m、dのいずれか:年月日の増やしたい項目
- addNum = 4; // 増減値(target=yの時:年数、target=mの時:月数、target=dの時:日数)
- baseY = 2012; // ベースになる年
- baseM = 6; // ベースになる月
- baseD = 30; // ベースになる日
- rDate = addDate(new Date(baseY, baseM-1, baseD), target, addNum);
- // 計算した年月日を分ける。
- rDatY = rDate.getFullYear();
- rDatM = rDate.getMonth() + 1;
- rDatD = rDate.getDate();
- rYMD = rDatY + "/" + rDatM + "/" + rDatD;
- document.write( "<h2>ベースになる年月日にn年(or n月 or n日)を足す</h2>" );
- document.write( "<table>" );
- document.write( "<tr><th>ベースになる日</th><td>" + baseY + "/"+ baseM + "/"+ baseD + "</td></tr>" );
- document.write( "<tr><th>+4日したときの戻り値</th><td>" + rDate + "</td></tr>" );
- document.write( "<tr><th>戻り値を年月日だけに整形したもの</th><td>" + rYMD + "</td></tr>" );
- document.write( "</table>" );
- // 期間
- dayA = new Date();
- dayB = new Date(baseY, baseM-1, baseD);
- diffDay = Math.ceil(( dayB-dayA )/( 60*60*24*1000 ) );
- document.write( "<h2>2つの日付の差</h2>" );
- document.write( "<table>" );
- document.write( "<tr><th>" + dayA + "から<br />" + dayB + "までの日数</th><td>" + diffDay + "日</td></tr>" );
- document.write( "</table>" );
- </script>
- <div style="font-size:10pt;text-align:right;margin-top:0.5em;">
- <a href="//tips.recatnap.info/" target="_top">PCスキルの小技・忘却防止メモ</a> -
- <a href="//tips.recatnap.info/wiki/" target="_top">PCスキルの小技・忘却防止メモのまとめ(wiki)</a>
- </div>
- <div style="font-size:10pt;text-align:center;margin-top:0.5em;padding:0.5em;border-top:1px solid #ccc;">
- Copyright © 2009 by PCスキルの小技・忘却防止メモ. All rights reserved.
- </div>
- </body>
- </html>