1./**
2. * 判断是不是一个正确的时间 yyyy-MM-dd
3. * @param {String} str
4. * @return {Date}
5. */
6.Date.isSimpleDate = function(str){
7. var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
8. var r = str.match(reg);
9. if(r==null)return null;
10. var d= new Date(r[1], r[3]-1,r[4]);
11. var newStr=d.getFullYear() + "-";
12. newStr+=(((d.getMonth()+1)<10&&r[3].length>1)?('0'+(d.getMonth()+1)):(d.getMonth()+1)) + "-" ;
13. newStr+=(((d.getDate())<10 && r[4].length>1)?('0'+d.getDate()):d.getDate());
14. if(newStr==str){
15. return d;
16. }else{
17. return null;
18. }
19.}
20./**
21. * 判断是不是一个正确的时间类型 yyyy-MM-dd hh
22. * @param {Object} str
23. */
24.Date.isDateHH = function(str){
25. var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2})$/;
26. var r = str.match(reg);
27. if(r==null)return null;
28. var d= new Date(r[1], r[3]-1,r[4],r[5]);
29. var newStr=d.getFullYear() + "-";
30. newStr+=(((d.getMonth()+1)<10&&r[3].length>1)?('0'+(d.getMonth()+1)):(d.getMonth()+1)) + "-" ;
31. newStr+=(((d.getDate())<10 && r[4].length>1)?('0'+d.getDate()):d.getDate()) + " ";
32. newStr+=((d.getHours()<10&&r[5].length>1)?('0'+d.getHours()):d.getHours());
33. if(newStr==str){
34. return d;
35. }else{
36. return null;
37. }
38.}
39./**
40. * 判断是不是一个正确的时间类型 yyyy-MM-dd hh:mm
41. * @param {String} str
42. */
43.Date.isDateHHMM = function(str){
44. var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2})$/;
45. var r = str.match(reg);
46. if(r==null)return null;
47. var d= new Date(r[1], r[3]-1,r[4],r[5],r[6]);
48. var newStr=d.getFullYear() + "-";
49. newStr+=(((d.getMonth()+1)<10&&r[3].length>1)?('0'+(d.getMonth()+1)):(d.getMonth()+1)) + "-" ;
50. newStr+=(((d.getDate())<10 && r[4].length>1)?('0'+d.getDate()):d.getDate()) + " ";
51. newStr += ((d.getHours()<10&&r[5].length>1)?('0'+d.getHours()):d.getHours())+":";
52. newStr += ((d.getMinutes()<10&&r[6].length>1)?('0'+d.getMinutes()):d.getMinutes());
53. if(newStr==str){
54. return d;
55. }else{
56. return null;
57. }
58.}
59./**
60. * 判断是不是一个正确的时间类型 yyyy-MM-dd hh:mm:ss
61. * @param {String} str
62. */
63.Date.isDateHHMMSS = function(str){
64. var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
65. var r = str.match(reg);
66. if(r==null)return null;
67. var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
68. var newStr=d.getFullYear() + "-";
69. newStr+=(((d.getMonth()+1)<10&&r[3].length>1)?('0'+(d.getMonth()+1)):(d.getMonth()+1)) + "-" ;
70. newStr+=(((d.getDate())<10 && r[4].length>1)?('0'+d.getDate()):d.getDate()) + " ";
71. newStr += (((d.getHours()<10&&r[5].length>1)?('0'+d.getHours()):d.getHours()))+":";
72. newStr += (((d.getMinutes()<10&&r[6].length>1)?('0'+d.getMinutes()):d.getMinutes())) + ":";
73. newStr += ((d.getSeconds()<10&&r[7].length>1)?('0'+d.getSeconds()):d.getSeconds());
74. if(newStr==str){
75. return d;
76. }else{
77. return null;
78. }
79.}
80./***
81. * 判断是日期1是不是在日期2后面
82. * @param {Date/String} d1
83. * @param {Date/String} d2
84. * @return {Boolean} true 小于日期2
85. */
86.Date.before = function(d1,d2){
87. if((typeof d1 == 'object' && d1.constructor == Date) && (typeof d2 == 'object' && d2.constructor == Date)){
88. if(d1<=d2){
89. return true;
90. }else{
91. return false;
92. }
93. }else if((typeof d1 == 'string' && d1.constructor == String) && (typeof d2 == 'string' && d2.constructor == String)){
94.
95. var date1 = Date.isSimpleDate(d1)!=null?Date.isSimpleDate(d1):Date.isDateHH(d1);
96. date1 = date1!=null?date1:Date.isDateHHMM(d1);
97. date1 = date1!=null?date1:Date.isDateHHMMSS(d1);
98. var date2 = Date.isSimpleDate(d2)!=null?Date.isSimpleDate(d2):Date.isDateHH(d2);
99. date2 = date2!=null?date2:Date.isDateHHMM(d2)
100. date2 = date2!=null?date2:Date.isDateHHMMSS(d2);
101. if(date1==null||date2==null){
102. alert("日期格式不正确!");
103. return false;
104. }
105. if(date1<=date2){
106. return true;
107. }else{
108. return false;
109. }
110. }else if((typeof d1 == 'string' && d1.constructor == String) && (typeof d2 == 'object' && d2.constructor == Date)){
111.
112. var date1 = Date.isSimpleDate(d1)!=null?Date.isSimpleDate(d1):Date.isDateHH(d1);
113. date1 = date1!=null?date1:Date.isDateHHMM(d1);
114. date1 = date1!=null?date1:Date.isDateHHMMSS(d1);
115. if(date1==null||d2==null){
116. alert("日期格式不正确!");
117. return false;
118. }
119. if(date1<=d2){
120. return true;
121. }else{
122. return false;
123. }
124. }else if((typeof d1 == 'object' && d1.constructor == Date) && (typeof d2 == 'string' && d2.constructor == String)){
125.
126. var date2 = Date.isSimpleDate(d2)!=null?Date.isSimpleDate(d2):Date.isDateHH(d2);
127. date2 = date2!=null?date2:Date.isDateHHMM(d2)
128. date2 = date2!=null?date2:Date.isDateHHMMSS(d2);
129. if(d1==null||date2==null){
130. alert("日期格式不正确!");
131. return false;
132. }
133. if(d1<=date2){
134. return true;
135. }else{
136. return false;
137. }
138. }else{
139. alert("无法判断输入数据类型!");
140. return false;
141. }
142.}
分享到:
相关推荐
js日期计算
个人总结很好用的js内对日期的各种操作,直接调用即可
使用js计算日期之间的差值不使用内置方法,无兼容问题,建议JS新手学习使用
kettle中使用js计算两个日期之间的天数
调用简单,下拉传一日期加类型即可转换日期的类型,如: CalConvert(new Date(2010,3,19), false) //农历转换为公历 CalConvert(new Date(2010,3,19), true)//公历转换成农历
这个JS能计算当前日期和指定日期的时间差
Date.prototype.DateAdd 日期计算 Date.prototype.DateDiff 比较日期差 Date.prototype.toString 日期转字符串 Date.prototype.toArray 日期分割为数组 Date.prototype.DatePart 取日期的部分信息 Date.prototype....
Moment.js 是一个简单易用的轻量级JavaScript日期处理类库,提供了日期格式化、日期解析等功能。它支持在浏览器和NodeJS两种环境中运行。此类库能够将给定的任意日期转换成多种不同的格式,具有强大的日期计算功能,...
js中对日期增加(+n)或减少(-n)n天
个一个简单的JavaScript日期计算算法代码
主要介绍了javascript日期计算,涉及javascript针对日期计算的相关技巧,这里需要注意索引的使用,需要的朋友可以参考下
JS版计算指定日期是当年的哪一周。 为了有分好下载,传上来换点分。
javascript 精确计算、日期处理、金额格式化
当选定宝宝出生年月后 点击宝宝月龄会产生点击事件自动得出宝宝月龄
1 返回农历year年中哪个月是闰月,没有闰月返回0 2 返回农历year年闰月的天数(如果没有闰月则返回0) 3 返回农历year年的总天数 ...9 计算指定日期是否属于24节气 10 阳历日期转农历日期 11 日期转化周几
js计算日期差
Date.prototype.DateAdd 日期计算 Date.prototype.DateDiff 比较日期差 Date.prototype.toString 日期转字符串 Date.prototype.toArray 日期分割为数组 Date.prototype.DatePart 取日期的部分信息 Date.prototype....
这个是一个计算日期的控件,比JS自带的计算日期要准确且很强大。
这是一段使用js来判断两个日期之间相差几周的函数
鉴于有的画面上需要判断一年之后的具体日期,根据不同月份算出一年之后的具体日期。