在WEB开发时,经常会与日期时间打交道,有时候我们需要用户提供日期和时间数据,为了确保顺利提交,我们需要对用户输入的日期时间格式进行验证,不正确的话则提示用户检查并重新输入,以下代码将分别判断日期格式、日期时间格式是否正确。
第一种:仅判断日期格式是否正确,不带时间:
代码如下 | 复制代码 |
<script language=javascript> String.prototype.isDate = function() { var r = this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); if(r==null)return false; var d = new Date(r[1], r[3]-1, r[4]); return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]); } alert("2002-01-31".isDate()); alert("2002-01-41".isDate()); </script> |
第二种,判断日期+时间格式是否正确:
代码如下 | 复制代码 |
<script language=javascript> String.prototype.isTime = function() { var r = this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/); if(r==null)return false; var d = new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]); } alert("2002-1-31 12:34:56".isTime()); alert("2001-2-29 12:54:56".isTime()); alert("2002-1-41 12:00:00".isTime()); </script> |
第三种,判断日期是否有效
1 短时间,形如 (13:04:06)
代码如下 | 复制代码 |
function isTime(str) { var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/); if (a == null) {alert('输入的参数不是时间格式'); return false;} if (a[1]>24 || a[3]>60 || a[4]>60) { alert("时间格式不对"); return false } return true; } 2. 短日期,形如 (2008-07-22) function strDateTime(str) { var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); if(r==null)return false; var d= new Date(r[1], r[3]-1, r[4]); return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]); } 3 长时间,形如 (2008-07-22 13:04:06) function strDateTime(str) { var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; var r = str.match(reg); if(r==null)return false; var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]); } |
第四种,判断日期格式是否有效
代码如下 | 复制代码 |
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的格式 |
时间: 2024-09-19 09:58:01