移动公司班组文化墙:jsp中日期如何判断

来源:百度文库 编辑:高考问答 时间:2024/04/27 22:34:58
如果我想判断日期的输入是否何法
比如:正确格式为:2005-5-5或2005/5/5或2005-05-05
或2005/05/05
如何判断(用javascript)
我用过
function checkDate()
{
var tempDate;
var inString=document.timeform.addtime.value;
var a=new Date(inString);
var y=a.getFullYear();
var m=a.getMonth()+1;
var d=a.getDate();
var myday=y + "/" + m + "/" + d
if (myday!=inString) {
alert("请输入一有效日期(yyyy/m/d)。");
return false;
}else return true;
}
其中addtime是text
问题是,这只能判断"/"
不能判断“-”
我想知道有没有能判断出全部的

建议你把年、月、日分别做成下拉选择框的形式,这样既方便了别人,也省去了你做日期校验的麻烦。
如果你一定要用单行文本框来输入日期的话,可以通过正则表达式进行校验,方法如下:

根据您的要求做了修改,以下是修改后的代码:

<script language="JavaScript">
function checkdate()
{
var datetype=/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/;
var datetype1=/^[0-9]{4}\/[0-9]{1,2}\/[0-9]{1,2}$/;
if(!(datetype.exec(document.form1.inputdate.value) || datetype1.exec(document.form1.inputdate.value)))
{
alert("对不起,请您按以下格式输入日期:\n2005-5-5或2005/1/1");
form1.inputdate.focus();
return false;
}
return true;
}
</script>

注意:以上代码中的form1是表单名,inputdate是输入日期用的单行文本框的名字。
在页面中加入以上代码后,再在表单提交按钮上加入单击事件onClick="return checkdate()"即可。
如果您的数据库中存储日期的字段的数据类型是datetime,可能需要先将单行文本框中输入的字符串型日期数据转换成日期型才能写入数据库,不然会出现意想不到的麻烦。因为您的前提是jsp环境下,而java是强类型语言。

这个函数只是希望对您有所启发,函数本身还很不完善:您应该也看出来了,这个函数只能校验格式,不能校验数值,当出现了用户输入的月份大于12,或者日大于31等情况时,它就无能为力了。

Date myDate = new Date();