//由頁面元素date_string(YYYY-MM_DD格式)得到數組date_array
//輸入參數:date_string:日期串;marker:日期串date_string裡的分隔字元,如果沒有則為"";
//傳回值: 數組:date_array
// 數組元素date_array.year=YYYY;date_array.month=MM;date_array.day=DD;date_array.datestring=YYYYMMDD
function date_get(date_string,marker)
{
var date_array=new Array()
if (date_string.length!=0)
{
if (marker!="") //如果傳入的字串有分隔字元
{
var year = date_string.substr(0,4);
var month = date_string.substr(5,2);
var day = date_string.substr(8,2);
}
else //如果傳入的字串沒有分隔字元
{
var year = date_string.substr(0,4);
var month = date_string.substr(4,2);
var day = date_string.substr(6,2);
}
date_array.year=year;
date_array.month=month;
date_array.day=day;
date_array.datestring=year+month+day+"";
return date_array;
}
date_array.year="";
date_array.month="";
date_array.day="";
date_array.datestring="";
return date_array;
}
//year必須大於1900;month必須在1-12之間;day必須在1-31之間
//輸入參數:年、月、日、錯誤提示資訊裡要顯示的控制項標籤名字
//傳回值:數組:check_result
// 數組元素check_result.status:true/false 校正成功/失敗;
// 數組元素check_result.message:""/錯誤提示資訊 空串(校正成功的時候)/錯誤提示資訊(校正失敗的時候);
function date_check(date_array,field_name)
{
var check_result = new Array();
//獲得數字。(頁面中)
var year = date_array.year;
var month = date_array.month;
var day = date_array.day;
var hour = date_array.hour;
var minute = date_array.minute;
var second = date_array.second;
//年份必須為YYYY(用Regex判斷是否是數字)
var err_message='日期必須符合YYYY-MM-DD格式,年份必須由YYYY格式的四位元字組成!';
//var year_patten=/^[0-9]{4,4}$/i;
var year_patten=/^/d+$/i;
var matchArray = year.match(year_patten);
if (year.length!=0 && matchArray==null)
{
check_result.status=false;
check_result.message=err_message;
return check_result;
}
//月必須為MM(用Regex判斷是否是數字)
var err_message='日期必須符合YYYY-MM-DD格式,月份必須由MM格式的二位元字組成!';
//var month_patten=/^[0-9]{2,2}$/i;
var month_patten=/^/d+$/i;
var matchArray = month.match(month_patten);
if (month.length!=0 && matchArray==null)
{
check_result.status=false;
check_result.message=err_message;
return check_result;
}
//日期必須為DD(用Regex判斷是否是數字)
var err_message='日期必須符合YYYY-MM-DD格式,日期必須由DD格式的二位元字組成!';
//var day_patten=/^[0-9]{2,2}$/i;
var day_patten=/^/d+$/i;
var matchArray = day.match(day_patten);
if (day.length!=0 && matchArray==null)
{
check_result.status=false;
check_result.message=err_message;
return check_result;
}
/*alert("ok");
alert(hour);
//日期必須為DD(用Regex判斷是否是數字)
var err_message='日期必須符合YYYY-MM-DD格式,小時必須由hh格式的二位元字組成!';
var hour_patten=/^[0-9]{2,2}$/i;
//var hour_patten=/^/d+$/i;
var matchArray = hour.match(hour_patten);
if (hour.length!=0 && matchArray==null)
{
check_result.status=false;
check_result.message=err_message;
return check_result;
}
//日期必須為DD(用Regex判斷是否是數字)
var err_message='日期必須符合YYYY-MM-DD格式,分鐘必須由mm格式的二位元字組成!';
var minute_patten=/^[0-9]{2,2}$/i;
//var minute_patten=/^/d+$/i;
var matchArray = minute.match(minute_patten);
if (minute.length!=0 && matchArray==null)
{
check_result.status=false;
check_result.message=err_message;
return check_result;
}
//日期必須為DD(用Regex判斷是否是數字)
var err_message='日期必須符合YYYY-MM-DD格式,日期必須由ss格式的二位元字組成!';
var second_patten=/^[0-9]{2,2}$/i;
//var second_patten=/^/d+$/i;
var matchArray = second.match(second_patten);
if (second.length!=0 && matchArray==null)
{
check_result.status=false;
check_result.message=err_message;
return check_result;
}
*/
var year_int=parseInt(year,10);
var month_int;
var day_int;
if(month.substr(0,1) == "0")
month_int = parseInt(month.substr(1,1));
else
month_int = parseInt(month);
if(day.substr(0,1) == "0")
day_int = parseInt(day.substr(1,1));
else
day_int = parseInt(day);
if ((year_int%4==0)&&(year_int%100!=0) || (year_int%400==0))
{
var day_number=new Array(31,29,31,30,31,30,31,31,30,31,30,31);
}
else
{
var day_number=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
}
if (year_int<1900)
{
var err_message = field_name+"的年沒有意義!請重新輸入!";
check_result.status=false;
check_result.message=err_message;
return check_result;
}
if (month_int<1 || month_int>12)
{
var err_message = field_name+"的月份不正確!請確認符合'YYYY-MM-DD'格式!";
check_result.status=false;
check_result.message=err_message;
return check_result;
}
if (day_int<1 || day_int>day_number[(month-1)])
{
var err_message = field_name+"的日期部分不正確!請確認符合'YYYY-MM-DD'格式!";
check_result.status=false;
check_result.message=err_message;
return check_result;
}
if (hour<0 || hour>24)
{
var err_message = field_name+"的小時部分不正確!請確認符合'YYYY-MM-DD'格式!";
check_result.status=false;
check_result.message=err_message;
return check_result;
}
if (minute<0 || minute>60)
{
var err_message = field_name+"的分鐘部分不正確!請確認符合'YYYY-MM-DD'格式!";
check_result.status=false;
check_result.message=err_message;
return check_result;
}
if (second<0 || second>60)
{
var err_message = field_name+"的秒鐘部分不正確!請確認符合'YYYY-MM-DD'格式!";
check_result.status=false;
check_result.message=err_message;
return check_result;
}
check_result.status=true;
check_result.message="";
return check_result;
}
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/taojiahuanjia/archive/2008/08/22/2814696.aspx