JavaScript 代碼
/// 檢查輸入的日期是否為正確的日期格式:
/// 支援 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, 31, 31, 30, 3131, 313131, 31, 30, 3131];
strDate = strInputDate.replace(/-/g, "/");
if (strDate.indexOf("/") == -1) {
alert("請輸入yyyy-M-d、yyyy-MM-dd、yyyy/M/d、yyyy/MM/dd 格式。")
return false;
}
if (arrD.length != 3) return false;
y = parseInt(arrD[0], 10);
m = parseInt(arrD[1], 10); = parseInt(arrD[2], 10);
//判斷年月日是否為數字
if (isNaN(y) || isNaN(m) || isNaN(d)) return false;
// 判斷月份是否在1-12之間
if (m > 12 || m //判斷是否為閏年
if (isLoopYear(y)) DA[2] = 29;
//判斷輸入的日是否超過了當月月份的總天數。
if (d > DA[m]) return false;
//各種條件都驗證了,則應該是一個合法的日期了。
// 如果要對日期進行一次格式化,則可以在這裡進行處理了,下面格式化成資料庫識別的日期格式yyyy-MM-dd
function CheckDate2(strInputDate) {
if (strInputDate == "") return false;
strInputDate = strInputDate.replace(/-/g, "/");
(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()));
}