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 异步调用框架 (Part 1 - 问题 &amp; 场景)
Aug 03 Javascript
原创javascript小游戏实现代码
Aug 19 Javascript
5个javascript的数字格式化函数分享
Dec 07 Javascript
jquery.validate的使用说明介绍
Nov 12 Javascript
浅谈JavaScript 框架分类
Nov 10 Javascript
AngularJS HTML DOM详解及示例代码
Aug 17 Javascript
关于angular js_$watch监控属性和对象详解
Apr 24 Javascript
jQuery实现select下拉框获取当前选中文本、值、索引
May 08 jQuery
vue.js加载新的内容(实例代码)
Jun 01 Javascript
AngularJS中控制器函数的定义与使用方法示例
Oct 10 Javascript
vue中使用gojs/jointjs的示例代码
Aug 24 Javascript
JS事件流与事件处理程序实例分析
Aug 16 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
全国FM电台频率大全 - 16 河南省
2020/03/11 无线电
非洲第一个咖啡超凡杯大赛承办国—卢旺达的咖啡怎么样
2021/03/03 咖啡文化
php之Smarty模板使用方法示例详解
2014/07/08 PHP
php+mysql结合Ajax实现点赞功能完整实例
2015/01/30 PHP
php筛选不存在的图片资源
2015/04/28 PHP
PHP文件与目录操作示例
2016/12/24 PHP
Laravel实现表单提交
2017/05/07 PHP
繁简字转换功能
2006/07/19 Javascript
javascript显示选择目录对话框的代码
2008/11/10 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
JS中处理与当前时间间隔的函数代码
2012/05/23 Javascript
写得不错的jquery table鼠标经过变色代码
2013/09/27 Javascript
javascript实现playfair和hill密码算法
2014/12/07 Javascript
Javascript基础教程之比较操作符
2015/01/18 Javascript
jquery uploadify如何取消已上传成功文件
2017/02/08 Javascript
AngularJS实现根据不同条件显示不同控件
2017/04/20 Javascript
vue移动端裁剪图片结合插件Cropper的使用实例代码
2017/07/10 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
2018/01/25 jQuery
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
创建nuxt.js项目流程图解
2020/03/13 Javascript
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
[14:00]DOTA2国际邀请赛史上最长大战 赛后专访B神
2013/08/10 DOTA
Python基础之循环语句用法示例【for、while循环】
2019/03/23 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
2020/04/20 Python
django 连接数据库出现1045错误的解决方式
2020/05/14 Python
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
详解淘宝H5 sign加密算法
2020/08/25 HTML / CSS
阿德的梦教学反思
2014/02/06 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
2014年银行年终工作总结
2014/12/19 职场文书
婚礼父母答谢词
2015/01/04 职场文书
学校党员干部承诺书
2015/05/04 职场文书
成绩单家长意见
2015/06/03 职场文书
关于环保的宣传稿
2015/07/23 职场文书
解决pytorch-gpu 安装失败的记录
2021/05/24 Python