JavaScript 判断日期格式是否正确的实现代码


Posted in Javascript onJuly 04, 2011

转载者最起码注明作者和出处!http://www.cnblogs.com/GuominQiu

//--------------------------------------------------------------------------- 
//判断日期格式是否正确 
//返回值是错误信息, 无错误信息即表示合法日期字符串 
function isDateString(strDate){ 
var strSeparator = "-"; //日期分隔符 
var strDateArray; 
var intYear; 
var intMonth; 
var intDay; 
var boolLeapYear; 
var ErrorMsg = ""; //出错信息 
strDateArray = strDate.split(strSeparator); 
//没有判断长度,其实2008-8-8也是合理的//strDate.length != 10 || 
if(strDateArray.length != 3) { 
ErrorMsg += "日期格式必须为: yyyy-MM-dd"; 
return ErrorMsg; 
} 
intYear = parseInt(strDateArray[0],10); 
intMonth = parseInt(strDateArray[1],10); 
intDay = parseInt(strDateArray[2],10); 
if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay)) { 
ErrorMsg += "日期格式错误: 年月日必须为纯数字"; 
return ErrorMsg; 
} 
if(intMonth>12 || intMonth<1) { 
ErrorMsg += "日期格式错误: 月份必须介于1和12之间"; 
return ErrorMsg; 
} 
if((intMonth==1||intMonth==3||intMonth==5||intMonth==7 
||intMonth==8||intMonth==10||intMonth==12) 
&&(intDay>31||intDay<1)) { 
ErrorMsg += "日期格式错误: 大月的天数必须介于1到31之间"; 
return ErrorMsg; 
} 
if((intMonth==4||intMonth==6||intMonth==9||intMonth==11) 
&&(intDay>30||intDay<1)) { 
ErrorMsg += "日期格式错误: 小月的天数必须介于1到31之间"; 
return ErrorMsg; 
} 
if(intMonth==2){ 
if(intDay < 1) { 
ErrorMsg += "日期格式错误: 日期必须大于或等于1"; 
return ErrorMsg; 
} 
boolLeapYear = false; 
if((intYear%100) == 0){ 
if((intYear%400) == 0) 
boolLeapYear = true; 
} 
else{ 
if((intYear % 4) == 0) 
boolLeapYear = true; 
} 
if(boolLeapYear){ 
if(intDay > 29) { 
ErrorMsg += "日期格式错误: 闰年的2月份天数不能超过29"; 
return ErrorMsg; 
} 
} else { 
if(intDay > 28) { 
ErrorMsg += "日期格式错误: 非闰年的2月份天数不能超过28"; 
return ErrorMsg; 
} 
} 
} 
return ErrorMsg; 
}
Javascript 相关文章推荐
浅析document.createDocumentFragment()与js效率
Jul 08 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
Dec 06 Javascript
Extjs4中的分页应用结合前后台
Dec 13 Javascript
jQuery实现点击该行即可删除HTML表格行
Oct 17 Javascript
新手快速学习JavaScript免费教程资源汇总
Jun 25 Javascript
JS全局变量和局部变量最新解析
Jun 24 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
Jan 04 Javascript
require.js中的define函数详解
Jul 10 Javascript
Three.js实现绘制字体模型示例代码
Sep 26 Javascript
Vue+Vux项目实践完整代码
Nov 30 Javascript
详解如何在Vue项目中发送jsonp请求
Oct 25 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
Jan 04 Javascript
Javascript计算时间差的函数分享
Jul 04 #Javascript
ajax 同步请求和异步请求的差异分析
Jul 04 #Javascript
Extjs EditorGridPanel中ComboBox列的显示问题
Jul 04 #Javascript
Extjs gridpanel 出现横向滚动条问题的解决方法
Jul 04 #Javascript
JS分割字符串并放入数组的函数
Jul 04 #Javascript
js列举css中所有图标的实现代码
Jul 04 #Javascript
初学js 新节点的创建 删除 的步骤
Jul 04 #Javascript
You might like
PHP Mysql编程之高级技巧
2008/08/27 PHP
使用NetBeans + Xdebug调试PHP程序的方法
2011/04/12 PHP
php+MySQL判断update语句是否执行成功的方法
2014/08/28 PHP
PHP实现判断数组是一维、二维或几维的方法
2017/02/06 PHP
JavaScript让IE浏览器event对象符合W3C DOM标准
2009/11/24 Javascript
jquery checkbox,radio是否选中的判断代码
2010/03/20 Javascript
js中关于String对象的replace使用详解
2011/05/24 Javascript
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
js实现仿京东2级菜单效果(带延时功能)
2015/08/27 Javascript
js判断是否是手机页面
2017/03/17 Javascript
基于Vue实现后台系统权限控制的示例代码
2017/08/29 Javascript
详解angular笔记路由之angular-router
2017/09/12 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
vue+webpack模拟后台数据的示例代码
2018/07/26 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
angular中的post请求处理示例详解
2020/06/30 Javascript
[01:27:43]VGJ.S vs TNC Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
Python批量修改文件后缀的方法
2014/01/26 Python
Python Tkinter简单布局实例教程
2014/09/03 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
Python画柱状统计图操作示例【基于matplotlib库】
2018/07/04 Python
python环境路径配置以及命令行运行脚本
2019/04/02 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
2019/08/30 Python
python3实现用turtle模块画一棵随机樱花树
2019/11/21 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
PyTorch中clone()、detach()及相关扩展详解
2020/12/09 Python
澳大利高级泳装品牌:Bondi Born
2018/05/23 全球购物
硕士研究生自我鉴定
2013/11/08 职场文书
服务标兵事迹材料
2014/05/04 职场文书
七一建党节演讲稿
2014/09/11 职场文书
2016年国培研修日志
2015/11/13 职场文书
励志正能量20句:送给所有为梦想拼搏的人
2019/11/11 职场文书
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
2021/05/25 MySQL
Python实现信息轰炸工具(再也不怕说不过别人了)
2021/06/11 Python
java executor包参数处理功能 
2022/02/15 Java/Android