*

【jQuery】【JavaScript】うるう年も対応した年月日の日付フォームの作成方法

公開日: : javaScript, jQuery

年月日(うるう年対応)した日付フォーム(jQuery)のソースが
検索してもイマイチだったので自作しました。

<html>
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script>
 $(function(){

   var now_year = new Date().getFullYear();
   
   for (var i = now_year - 100; i <= now_year ;i++) {
    $(".year").append("<option value='"+i+"'>"+i+"</option>");
   }

   for (var i = 1; i <= 12 ;i++) {
    $(".month").append("<option value='"+i+"'>"+i+"</option>");
   }
  
  //月日に応じて日数を決める
  $(".date").change(function () {
   
   var year	 = $("[name=year] 	option:selected").val();
   var month = $("[name=month]	option:selected").val();
   var day   = new Date(year, month, 0).getDate();

   $(".day").empty();
   $(".day").append("<option value='0'>---</option>");

   for (var i = 1; i <= day ;i++) {
    $(".day").append("<option value='"+i+"'>"+i+"</option>");
   }
   
  });

 });
</script>

<select name="year" class="year date">
	<option value="0">---</option>
</select>

<select name="month" class="month date">
	<option value="0">---</option>
</select>

<select name="day" class="day">
	<option value="0">---</option>
</select>

</html>

JavaScript うるう年を対応するポイント

new Date(year, month, 0).getDate();です。
Date(year, month, 0)だと末日
Date(year, month, 1)だと初日になります。

getYear()の場合だと+1900しなくてはいけませんが、
getFullYear()を使えば普通に現在の年を取得することができます。

うるう年対応の年月日の説明

年は、現在の年月より100年の範囲です。(mixi,facebookも誕生年の設定範囲は100年)
月は、1~12月まで。
日は、1~31日でうるう年と月の末日に対応。
年月が変更されたときに日を買えるので class=”date”は年月のみです。
日までdateをつけると日を選択できなくなります。

関連記事

jQuery

FORMで画像を選択したときに画像を即時表示させる【画像アップロード】

フォームで画像アップロードするときに、 アップロードするサムネイルを即時表示させるコードです。

記事を読む

jQuery

【jQuery】【css】スクロールするごとにメニューの選択が変える方法

スクロールするごとにメニューの選択が変える方法を紹介します。 重要なポイントのみのコーディング

記事を読む

no image

ajaxで追加した要素のDOM操作ができないときの対処法

ajaxで要素を追加して、追加した要素に対して jQueryまたはJavaScriptで操作したい

記事を読む

jQuery

ファースビューで表示位置を変える方法【jQuery】【JavaScript】

Webページで1番はじめに表示される(ファースビュー)開始位置を決める方法です。 LINEのよ

記事を読む

MySQL
MYSQL LIKEの時代は終わった これからは100倍早いmroongaインストール方法

SQLのLIKEはパフォーマンスが悪い LIKEはインデックスが

ブルー画面
画像を上書きするとfailed to open stream: Permission deniedの対処法

failed to open stream: Permission d

no image
ajaxで追加した要素のDOM操作ができないときの対処法

ajaxで要素を追加して、追加した要素に対して jQueryまたはJ

jQuery
ファースビューで表示位置を変える方法【jQuery】【JavaScript】

Webページで1番はじめに表示される(ファースビュー)開始位置を決める

jQuery
FORMで画像を選択したときに画像を即時表示させる【画像アップロード】

フォームで画像アップロードするときに、 アップロードするサムネイルを

→もっと見る

PAGE TOP ↑