JavaScript コード
/// 入力された日付が正しい日付形式であるかどうかを確認します:
/// 4 つの入力形式をサポートします: yyyy-M-d、yyyy-MM-dd、yyyy/M/d、yyyy/MM/dd。
function checkDate(strInputDate) {
//月の日の定数配列を定義します
var DA = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
// 統一された日付形式
strDate = strInputDate.replace(/-/g, "/");
// 日付が予期された形式であるかどうかを判断します
if (strDate.indexOf("/") == -1) {
alert("yyyy-M-d、yyyy-MM-dd、yyyy/M/d、yyyy/MM/ddの形式を入力してください。")
return false;
}
// 分解年、月、日
arrD = strDate.split("/");
if (arrD.length != 3) return false;
y = parseInt(arrD[0], 10);
m = parseInt(arrD [1], 10);
d = parseInt(arrD[2], 10);
//年、月、日が数字かどうか判定
if (isNaN(y) || isNaN(m) || isNaN (d)) return false;
//月が1-12の間か判定
if (m > 12 || m //閏年か判定
if ( isLoop Year(y)) DA[2] = 29;
/ /入力された日が当月の合計日数を超えているかどうかを判断します。
if (d > DA[m]) return false;
//すべての条件が検証された場合、それは有効な日付であるはずです。
// 日付を一度フォーマットしたい場合は、ここで行うことができます。次の例では、データベース yyyy-MM-dd で認識される日付フォーマットにフォーマットします。 // str = y + "-" + (m str = y + "-" + (m alert(str)
return true;
}
function isLoop Year(the Year) {
return (new Date(the Year) , 1 , 29).getDate() == 29);
}
/// 入力された日付が正しい日付形式であるかどうかを確認します:
/// yyyy-M-d、yyyy-MM をサポート- 入力形式は dd、yyyy/M/d、yyyy/MM/dd の 4 つです。
function CheckDate2(strInputDate) {
if (strInputDate == "") return false;
strInputDate = strInputDate.replace(/-/g, "/");
var d = new Date(strInputDate);
if (isNaN (d)) return false;
var arr = strInputDate.split("/");
return ((parseInt(arr[0], 10) == d.getFullyear()) && (parseInt(arr[1], 10) == (d.getMonth() + 1)) && (parseInt(arr[2], 10) == d.getDate()));
}