JS日期格式CHECK和日期比较

/* Check date format and validity */
function dateCheck(obj, labelName) {
var objName = eval(“document.all.” + obj);
var value = objName.value;
if (value == "" || value == null || value == undefined) {
return true;
}

if (value.match(/^\d{4}\/\d{2}\/\d{2}$ /) == null) {
alert(labelName + "にYYYY/MM/DD形式を入力してください。");
objName.focus();
return false;
}

value = value.replace(/\//g, "");

if (numCheck(value) == false) {
alert(labelName + "にYYYY/MM/DD形式を入力してください。");
objName.focus();
return false;
}

len = value.length;
if (len != 8) {
alert(labelName + "にYYYY/MM/DD形式を入力してください。");
objName.focus();
return false;

}

mon = parseIntX(value.substring(4, 6));
day = parseIntX(value.substring(6, 8));
switch(mon) {
case '1' :
case '3' :
case '5' :
case '7' :
case '8' :
case '10' :
case '12' :
if (day < 1 || day > 31) {
alert(labelName + "にYYYY/MM/DD形式を入力してください。");
objName.focus();
return false;
}
break;
case '4' :
case '6' :
case '9' :
case '11' :
if (day < 1 || day >30) {
alert(labelName + "にYYYY/MM/DD形式を入力してください。");
objName.focus();
return false;
}
break;
case '2' :
if (day < 1 || day > 29) {
alert(labelName + "にYYYY/MM/DD形式を入力してください。");
objName.focus();
retrun false;
}
if (day == 29) {
year = parseInt(value.substring(0, 4));
if (year % 4 != 0) {
alert(labelName + "にYYYY/MM/DD形式を入力してください。");
objName.focus();
retrun false;
}
if (year % 100 == 0) {
if (year % 400 != 0) {
alert(labelName + "にYYYY/MM/DD形式を入力してください。");
objName.focus();
retrun false;
}
}
}
break;
default :
alert(labelName + "にYYYY/MM/DD形式を入力してください。");
objName.focus();
retrun false;
}
return true;
}
/* Check number
* Used in function [dateCheck]
*/
function numCheck(value) {
len = value.length;
decPoint = false;
if (value == "-" || value == ".") {
return false;
}

for (i = 0; i < len; i++) {
c = value.charAt(i);
switch(c) {
case '0' :
case '1' :
case '2' :
case '3' :
case '4' :
case '5' :
case '6' :
case '7' :
case '8' :
case '9' :
break;
case '-' :
if (i != 0) {
return false;
}
break;
case '.' :
if (decPoint == true) {
return false;
}
decPoint = true;
break;
default :
return false;
}
}
return true;
}
/* Change date type to int.
* used in function [dateCheck]
*/
function parseIntX(value) {
str = allSpaceDel(value);
len = str.length;
for (i = 0; i < len; i++) {
c = str.charAt(i);
if (c != '0') {
break;
}
}
if (i >= len) {
i = i - 1;
}
if (i >= 0) {
return parseInt(str.substring(i, len));
} else {
return str;
}
}
/* Delete space.
* Used in function [parseIntX]
*/
function allSpaceDel(value) {
len = value.length;
str = "";
for (i = 0; i < len; i++) {
c = value.charAt(i);
if (c == ' ') {
} else {
str = str + c;
}
}
return str;
}
------------------------------------------------------------------------------------------------
/*
* Compare start date and end date, end date must later than start date.
*/
function dateCompare(strDate, endDate, labelName) {
var objName1 = eval("document.all." + strDate);
var objName2 = eval("document.all." + endDate);
var fromDate = objName1.value;
var toDate = objName2.value;

var objFromDate = new Date(fromDate.substring(0, 4)/1, fromDate.substring(5, 7)/1 - 1, fromDate.substring(8,10)/1);
var objToDate = new Date(toDate.substring(0, 4)/1, toDate.substring(5, 7)/1 - 1, toDate.substring(8,10)/1);
if (objFromDate > objToDate) {
alert(labelName + "の終了日に開始日以降の日付を入力してくだい。");
objName2.focus();
return false;
}
return true;
}
------------------------------------------------------------------------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值