`

JS日期计算

 
阅读更多
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日期计算:掌握日期操作的艺术 在JavaScript中,日期计算是前端开发中常见的需求之一,无论是处理用户界面中的日期选择、数据统计还是时区转换,掌握日期对象及其方法都是必不可少的技能。本文将深入探讨如何...

    js内计算日期差

    根据给定的文件内容,我们可以总结出以下几个JavaScript中与日期处理相关的知识点: ### 1. 格式化日期 在JavaScript中,有时我们需要将日期格式化为特定的格式,例如`YYYY-MM-DD`。文件中提供了`formatDate`函数...

    使用js计算日期之间的差值

    使用js计算日期之间的差值不使用内置方法,无兼容问题,建议JS新手学习使用

    js时间日期输入框

    `WdatePicker`是一款功能丰富的JavaScript日期选择插件,由中国Web开发社区开发,支持多种日期格式,提供多种语言环境,并且具有日期计算、日期限制、日期校验等功能。其使用非常简便,只需要在HTML中添加一个`...

    kettle中使用js计算两个日期之间的天数.txt

    kettle中使用js计算两个日期之间的天数

    几款js日期插件, 非常漂亮

    以下是对几款优秀的JavaScript日期插件的详细说明,这些插件能够帮助你精确到日期、小时、分钟甚至秒,提升你的项目质量。 1. **jQuery UI Datepicker** jQuery UI的Datepicker是广泛使用的日期选择器插件,它可以...

    js日期选择代码.zip

    5. **时间戳**:`getTime()`方法返回从1970年1月1日以来的毫秒数,这在进行日期计算时非常有用。 6. **日期增加/减少**:`setDate()`, `setMonth()`, `setFullYear()`等方法可以用来增加或减少日期的各个部分。 7....

    JS时间日期源码集锦

    在本“JS时间日期源码集锦”中,我们将会探讨JavaScript处理时间日期的各种方法和技巧,以及如何创建炫酷的时间日期相关特效。 一、JavaScript中的日期对象 在JavaScript中,Date对象是内置的构造函数,可以用来...

    js农历公历日期相互转换函数javascript日期转换

    调用简单,下拉传一日期加类型即可转换日期的类型,如: CalConvert(new Date(2010,3,19), false) //农历转换为公历 CalConvert(new Date(2010,3,19), true)//公历转换成农历

    js计算两个日期相差几周

    - 应考虑到闰年和平年对日期计算的影响。 #### 扩展知识点 - **国际化与本地化**:在处理涉及多语言或多地区的日期时,可以考虑使用 `Intl.DateTimeFormat` 或第三方库如 `moment.js` 来支持不同语言和地区的日期...

    js日期空间

    在"js日期空间"这个控件中,可能还包含了自定义样式、动画效果、日期计算(如加减日期)、日期比较等功能。开发人员可以通过分析提供的"日期javaScript"文件来了解其具体实现方式。此外,这个控件可能还考虑了浏览器...

    js.rar_javascript_js_js 日期控件_日期控件

    这个控件不仅能够提供基本的日期选择功能,还可能包含日期范围选择、日期计算、日期格式化等高级特性。 My97 DatePicker的使用方法通常包括引入CSS和JS文件,然后在需要添加日期选择的地方调用其提供的函数。例如:...

    很好用得js日期控件

    在JavaScript编程领域,日期控件是一种常见的用户界面组件,它允许用户方便地选择或输入日期。在网页开发中,尤其在处理表单提交或者时间相关的交互时,js日期控件显得尤为重要。本压缩包文件提供了几个经过测试的...

    JS计算日期差

    在JavaScript(JS)中,计算两个日期之间的差值是一项常见的任务,这可能涉及到日期的比较、日期间隔的计算,以及各种日期格式的处理。在给定的资源中,虽然没有直接提供具体的源码,但我们可以根据标题和标签来推测...

    各种JS日期控件 还带阴历哦

    - **JS1.html, JS2.html, JS3.html, js4.html**:这些可能是包含不同JS日期控件实现的HTML文件,每个文件可能演示了不同的控件设计或功能,如基本的日历选择、日期计算等。 - **0101245R011.html**:文件名无法...

    js实现日期列表 js实现日期列表

    ### 一、JavaScript日期对象的基本用法 在JavaScript中,`Date` 对象用于处理日期与时间。通过这个对象,我们可以获取和设置日期的不同部分,比如年份、月份、日等。同时,它还提供了计算两个日期之间的时间差以及...

    javascript精确计算日期处理金额格式化

    在这种情况下,JavaScript社区开发了许多日期处理库,比如Moment.js、date-fns、Luxon等。这些库提供了更强大的功能,如时区支持、复杂的日期格式化、日期时间的加减操作、日期比较等。例如,Moment.js允许你用`...

    功能强大界面漂亮的js日期控件

    "功能强大"这一标签暗示了这个控件不仅有基本的日期选择功能,还可能包含其他高级特性,比如日期范围选择、日期限制、时间选择、多语言支持、自定义格式化、日期计算、时间戳转换等。这些功能可以使开发者更灵活地...

    JS计算日期时间差

    这个JS能计算当前日期和指定日期的时间差

    带农历的js日期源码

    本文将深入探讨“带农历的js日期源码”这一主题,帮助开发者理解如何在JavaScript中实现农历日期功能。 首先,JavaScript原生并不支持农历日期处理,因此我们需要引入额外的库或者自定义函数来实现这个功能。这款...

Global site tag (gtag.js) - Google Analytics