最も当日に近い日付を得る
<html> <head><title>日付</title></head> <body> <h2>日付</h2> <script> // 「M/D」形式で指定した文字列から最も当日に近い日付を得る // 引数: date...日付。「M/D」形式 // 戻値: 日付が date で、最も当日に近い日付 function getNearestDate(date) { var today = new Date(); var year = today.getFullYear(); var this_year = new Date(year + "/" + date); var last_year = new Date((year - 1) + "/" + date); var next_year = new Date((year + 1) + "/" + date); var diff_this = Math.abs(this_year - today); var diff_last = Math.abs(last_year - today); var diff_next = Math.abs(next_year - today); var diff = diff_this; var out = this_year; if (diff_last < diff) { diff = diff_last; out = last_year; } if (diff_next < diff) { diff = diff_next; out = next_year; } return out; } document.write(getNearestDate("6/15")); document.write("<br>"); document.write(getNearestDate("1/1")); document.write("<br>"); document.write(getNearestDate("12/31")); document.write("<br>"); </script> </body> </html>
出力
Mon Jun 15 2009 00:00:00 GMT+0900 Fri Jan 01 2010 00:00:00 GMT+0900 Thu Dec 31 2009 00:00:00 GMT+0900