javaScript检测日期时间格式是否正确代码

在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

javaScript检测日期时间格式是否正确代码的相关文章

JavaScript格式化日期时间的方法和自定义格式化函数示例

 JavaScript默认的时间格式我们一般情况下不会用,所以需要进行格式化,下面说说我总结的JavaScript时间格式化方法 很多时候,我们可以利用JavaScript中Date对象的内置方法来格式化,如:   代码如下:var d = new Date(); console.log(d); // 输出:Mon Nov 04 2013 21:50:33 GMT+0800 (中国标准时间) console.log(d.toDateString()); // 日期字符串,输出:Mon Nov 0

JavaScript下的时间格式处理函数Date.prototype.format_javascript技巧

实例一: 一个全的js时间处理函数,虽然我没有仔细去研究里面的正则,但是我经过了测试,是非常好用的,你可以根据你自己的需求设置想要的时间格式的字符串输出,我应用到的格式为:MM/dd/yyyy hh:mm TT和yyyy-MM-dd HH:mm:ss. <span style="font-size:18px;">Date.prototype.format = function (mask) { var d = this; var zeroize = function (va

一起Polyfill系列:让Date识别ISO 8601日期时间格式

一.什么是ISO 8601日期时间格式   ISO 8601是国际标准化组织制定的日期时间表示规范,全称是<数据存储和交换形式·信息交换·日期和时间的表示方法>.   示例:   1. 2014-12-12T00:00:00.000Z   2. 2014-12-12T00:00:00.000+08   3. 2014-12-12T00:00:00.000+0800   4. 2014-12-12T00:00:00.000+08:00   5. 2004-W17-3   6. 0001-165

javascript格式化日期时间方法汇总

  本文给大家汇总介绍了javascript格式化日期时间的五种常用方法,个人对第五种个性化输出时间比较有兴趣,基本上只要项目中能用到都是使用第五种,推荐给小伙伴们. 示例一: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 <!DOCTYPE html> <html> <head> <meta charset="UTF-8&

Sql日期时间格式转换

原文:Sql日期时间格式转换 sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/ CONVERT(varchar(10), 时间一, 23) 结果:2007-02-01 /*varchar(10)表示日期输出的格式,如果不够长会发生截取*/ 语句及查询结果:Select C

请教lotus中的时间格式和JavaScript中的时间格式是否相同?

问题描述 请教lotus中的时间格式和JavaScript中的时间格式是否相同?我能在JavaScript中对两个时间值进行比较吗?如果可以的话,我该怎么转换数值?请各位大侠指点,谢谢啦! 解决方案 解决方案二:lotus的时间格式很多,可以根据你的程序要求进行修改~~

WPF-数据绑定:日期时间格式

原文:WPF-数据绑定:日期时间格式   WPF-数据绑定:日期时间格式绑定后自定义格式的例子. 我刚才遇到的问题是绑定完之后,星期始终显示为英文.需要一个属性ConverterCulture制定区域. 如下: {Binding datetime,StringFormat='{}{0:yyyy年MM月dd日 dddd HH:mm:ss}',ConverterCulture=zh-CN}指定ConverterCulture为zh-CN后星期就显示为中文了.  

自定义 RMAN 显示的日期时间格式

      缺省情况下,使用RMAN备份与恢复界面仅仅显示的是日期,而没有具体的时间.有时候需要查看具体的时间,如查看当天多个Incarnation的情形.对于这个问题,主要是设定环境变量参数NLS_DATE_FORMAT即可,如下文所描述.  1.RMAN日期及时间的缺省格式        robin@SZDB:~> rman target /         Recovery Manager: Release 10.2.0.3.0 - Production on Sat Jun 1 13:5

dedecms 日期时间格式大全_dedecms

日期时间格式 (利用strftime()函数格式化时间)0 首页: ([field:pubdate function='strftime("%m-%d",@me)'/])==(5-15) ([field:pubdate function='strftime("%b %d, %Y",@me)'/])==(May 15, 2008) 列表页: [field:pubdate function="GetDateTimeMK(@me)"/]==2008-1