正常な日付かチェック

正常な日付かどうかをチェックします。

デモ

デモでは、2014年1月23日と2014年23月1日の日付をチェックします。

関数定義

/**
 * 正常な日付かチェック
 * @param {number} year 年
 * @param {number} month 月
 * @param {number} day 日
 * @return {boolean} 戻り値は正常な日付の場合はtrue、無効な日付はfalseを返す
 */
var checkDate = function(year, month, day) {
	if (!year || !month || !day) return false;
	if (!String(year).match(/^[0-9]{4}$/) || !String(month).match(/^[0-9]{1,2}$/) || !String(day).match(/^[0-9]{1,2}$/)) return false;

	var dateObj      = new Date(year, month - 1, day),
	    dateObjStr   = dateObj.getFullYear() + '' + (dateObj.getMonth() + 1) + '' + dateObj.getDate(),
	    checkDateStr = year + '' + month + '' + day;

	if (dateObjStr === checkDateStr) return true;

	return false;
};

使い方

引数

引数名 説明
第一引数
必須
year number チェックする年
第二引数
必須
month number チェックする月
第二引数
必須
day number チェックする日

戻り値

戻り値は正常な日付の場合はtrue、無効な日付はfalseを返します。

サンプルコード

JavaScript

var checkResult1 = checkDate(2014, 1, 23),
    checkResult2 = checkDate(2014, 1, 32);

alert(checkResult1); // true
alert(checkResult2); // false

JavaScript逆引きリファレンス一覧へ戻る