JS中能否判断日期是否合法?

roundman 2003-03-10 12:12:02
RT
类似于PHP中的Checkdate。
...全文
2997 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fason 2003-03-10
  • 打赏
  • 举报
回复
//函数名:CheckDateTime
//功能介绍:检查是否为日期时间
function CheckDateTime(str){
var reg = /^(\d+)-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
var r = str.match(reg);
if(r==null)return false;
r[2]=r[2]-1;
var d= new Date(r[1], r[2],r[3], r[4],r[5], r[6]);
if(d.getFullYear()!=r[1])return false;
if(d.getMonth()!=r[2])return false;
if(d.getDate()!=r[3])return false;
if(d.getHours()!=r[4])return false;
if(d.getMinutes()!=r[5])return false;
if(d.getSeconds()!=r[6])return false;
return true;
}
wudp 2003-03-10
  • 打赏
  • 举报
回复
js好像没有吧,但是可以自己写一个函数的;
如:
<script language="javascript">
<!--
function IsDate(DateString,Dilimeter)
{
if (DateString == null)
{
return false;
}
if (Dilimeter == '' || Dilimeter == null)
{
Dilimeter = '-';
}
var tempy='';
var tempm='';
var tempd='';
var tempArray;
if (DateString.length<8 || DateString.length>10)
{
return false;
}

tempArray = DateString.split(Dilimeter);
if (tempArray.length != 3)
{
return false;
}

if (tempArray[0].length != 4)
{
return false;
}
else
{
tempy = tempArray[0];
tempm = tempArray[1];
tempd = tempArray[2];
}

if (isNaN(tempy))
{
return false;
}
if (isNaN(tempm))
{
return false;
}
if (isNaN(tempd))
{
return false;
}

var tDateString = tempy + '/' + tempm + '/' + tempd;
var tempDate = new Date(tDateString);

if (tempDate.getFullYear() != tempy)
{
return false;
}

if (tempDate.getMonth() != tempm-1)
{
return false;
}

if (tempDate.getDate() != tempd)
{
return false;
}

return true;
}
</script>
roundman 2003-03-10
  • 打赏
  • 举报
回复
楼上的几位,我的问题不在这里。
比如输入2000-2-29正确,1900-2-29要报错。楼上几位能达到么?
PHP中的Checkdate就直接可以判断出来。js没有相应的函数么?
shanxing 2003-03-10
  • 打赏
  • 举报
回复
学习~~~
rongwenfeng 2003-03-10
  • 打赏
  • 举报
回复
function toDateFromString( strDate )
{
if (strDate.length != 8) {

return null ;
}
var dtDate = null ;
var nYear = parseInt( strDate.substring( 0, 4 ), 10 ) ;
var nMonth = parseInt( strDate.substring( 4, 6 ), 10 ) ;
var nDay = parseInt( strDate.substring( 6, 8 ), 10 ) ;

if( isNaN( nYear ) == true || isNaN( nMonth ) == true || isNaN( nDay ) == true )
{
return null ;
}
dtDate = new Date( nYear, nMonth - 1, nDay ) ;
if( nYear != dtDate.getFullYear() || ( nMonth - 1 ) != dtDate.getMonth() || nDay != dtDate.getDate() )
{
return null ;
}

return dtDate ;
}


YYYYMMDD的格式
zhangguagua 2003-03-10
  • 打赏
  • 举报
回复
/**
判断输入框中输入的日期格式为yyyy-mm-dd和正确的日期
*/
function IsDate(sm,mystring) {
var reg = /^(\d{4})-(\d{2})-(\d{2})$/;
var str = mystring;
var arr = reg.exec(str);
if (str=="") return true;
if (!reg.test(str)&®Exp.$2<=12&®Exp.$3<=31){
alert("请保证"+sm+"中输入的日期格式为yyyy-mm-dd或正确的日期!");
return false;
}
return true;
}

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧