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 相关文章推荐
Javascript 构造函数 实例分析
Nov 26 Javascript
动态为事件添加js代码示例
Feb 15 Javascript
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
Aug 16 Javascript
Prototype源码浅析 String部分(一)之有关indexOf优化
Jan 15 Javascript
Extjs单独定义各组件的实例代码
Jun 25 Javascript
Javascript 学习笔记之 对象篇(二) : 原型对象
Jun 24 Javascript
详谈JavaScript 匿名函数及闭包
Nov 14 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
Aug 02 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
Nov 11 Javascript
10行原生JS实现文字无缝滚动(超简单)
Jan 02 Javascript
jquery分页插件pagination使用教程
Oct 23 jQuery
JavaScript常用工具函数库汇总
Sep 17 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
PHP4.04简明安装
2006/10/09 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
2011/03/31 PHP
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
php判断一个数组是否为有序的方法
2015/03/27 PHP
php使用number_format函数截取小数的方法分析
2016/05/27 PHP
Yii2单元测试用法示例
2016/11/12 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
PHP abstract 抽象类定义与用法示例
2018/05/29 PHP
如何简单地用YUI做JavaScript动画
2007/03/10 Javascript
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
javascript题目,重写函数让其无限相加
2012/02/15 Javascript
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
jquery通过a标签删除table中的一行的代码
2013/12/02 Javascript
jquery中获得元素尺寸和坐标的方法整理
2014/05/18 Javascript
Javascript类型转换的规则实例解析
2016/02/23 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
Angular2 自定义validators的实现方法
2017/07/05 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
Vue2.0 实现页面缓存和不缓存的方式
2019/11/12 Javascript
Vue 一键清空表单的实现方法
2020/02/07 Javascript
JQuery基于FormData异步提交数据文件
2020/09/01 jQuery
Python实用日期时间处理方法汇总
2015/05/09 Python
python实现爬虫下载美女图片
2015/07/14 Python
Python简单实现控制电脑的方法
2018/01/22 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
韩国家庭购物网上商店:Nsmall
2017/05/07 全球购物
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
校运会广播稿100字
2014/01/27 职场文书
车间机修工岗位职责
2014/02/28 职场文书
班主任寄语大全
2014/04/04 职场文书
吨的认识教学反思
2014/04/27 职场文书
树转促学习心得体会
2014/09/10 职场文书
盗窃案辩护词
2015/05/21 职场文书
python flask开发的简单基金查询工具
2021/06/02 Python
【DOTA2】半决赛强强对话~ PSG LGD vs EHOME - DPC 2022 CN REGIONAL FINALS WINTER
2022/04/02 DOTA