已知起始时间和结束时间,得到期间的时间段,数组表示

1、年月日

2、年月

3、年、季度

4、年

一、得到年月日

 1 <script>
 2         // 获取间隔天数  
 3         function getDays(day1, day2) {  
 4             // 获取入参字符串形式日期的Date型日期  
 5             var st = day1.getDate();  
 6             var et = day2.getDate();  
 7               
 8             var retArr = [];  
 9               
10             // 获取开始日期的年,月,日  
11             var yyyy = st.getFullYear(),  
12                 mm = st.getMonth(),  
13                 dd = st.getDate();  
14               
15             // 循环  
16             while (st.getTime() != et.getTime()) {  
17                 retArr.push(st.getYMD());  
18                   
19                 // 使用dd++进行天数的自增  
20                 st = new Date(yyyy, mm, dd++);  
21             }  
22           
23             // 将结束日期的天放进数组  
24             retArr.push(et.getYMD());  
25             retArr.splice(0,1);
26               
27             return retArr; // 或可换为return ret;  
28         }  
29           
30         // 给Date对象添加getYMD方法,获取字符串形式的年月日  
31         Date.prototype.getYMD = function(){  
32           
33             // 将结果放在数组中,使用数组的join方法返回连接起来的字符串,并给不足两位的天和月十位上补零  
34             return [this.getFullYear(), fz(this.getMonth() + 1), fz(this.getDate())].join("-");
35         }  
36           
37         // 给String对象添加getDate方法,使字符串形式的日期返回为Date型的日期  
38         String.prototype.getDate = function(){  
39             var strArr = this.split('-');  
40             return new Date(strArr[0], strArr[1] - 1, strArr[2]);  
41         }  
42           
43         // 给月和天,不足两位的前面补0  
44         function fz(num) {  
45             if (num < 10) {  
46                 num = "0" + num;  
47             }  
48             return num  
49         }  
50           
51         var a = getDays('2014-12-06', '2017-01-10'); 
52         console.log(a);
53     </script>

二、得到年月

 1 <script>
 2         var yymmDate = function(st,ed){
 3             var    arr = [],
 4                 len;
 5             stDate = new Date(st);
 6             edDate = new Date(ed);
 7 
 8             stY = stDate.getFullYear();
 9             stM = stDate.getMonth();
10             edY = edDate.getFullYear();
11             edM = edDate.getMonth();
12             len = edM - stM;
13             len2 = edY - stY;
14 
15             if(stY != edY){
16                 for(var j=0; j<len2+1; j++){
17                     for(var i=1; i<13; i++){
18                         i = fz(i);
19                         arr.push(stY+j + '-' + i);
20                     };
21                 };
22                 arr.splice(0,stM);
23                 arr.splice(-(12-edM-1),(12-edM-1));
24                 return arr;
25             }else{
26                 for(var i = 1; i<len+1; i++){
27                     i = fz(i);
28                     arr.push(
29                         stY + '-' + i 
30                     );
31                 };
32                 arr.push(ed);
33                 return arr;
34             };
35         };
36 
37         function fz(num) {  
38             if (num < 10) {  
39                 num = "0" + num;  
40             }  
41             return num  
42         }; 
43 
44         var startDate = '2015-01',
45             endDate = '2017-08';
46 
47         var timeData = yymmDate(startDate,endDate); 
48         console.log(timeData);
49     </script>

三、得到年、季度

 1 <script>
 2         var yyqqDate = function(sty,stq,edy,edq){
 3             var    arr = [],
 4                 len;
 5             stDate = new Date(sty);
 6             edDate = new Date(edy);
 7 
 8             stY = stDate.getFullYear();
 9             edY = edDate.getFullYear();
10             stM = stq;
11             edM = edq;
12             len = edq - stq;
13             len2 = edY - stY;
14 
15             if(stY != edY){
16                 for(var j=0; j<len2+1; j++){
17                     for(var i=1; i<5; i++){
18                         arr.push(stY+j + '年' + i + '季度');
19                     };
20                 };
21                 arr.splice(0,stM-1);
22                 arr.splice(-(4-edM),(4-edM));
23                 return arr;
24             }else{
25                 for(var i = 1; i<len+1; i++){
26                     arr.push(
27                         stY + '年' + i + '季度' 
28                     );
29                 };
30                 return arr;
31             };
32         };
33 
34         var timeData = yyqqDate('2015','1','2018','2'); 
35         console.log(timeData);
36     </script>

四、得到年

<script>
        var yymmDate = function(st,ed){
            var    arr = [],
                len;
            st = new Date(st);
            ed = new Date(ed);

            stY = st.getFullYear();
            edY = ed.getFullYear();
            len = edY - stY;

            if(stY != edY){
                for(var j=0; j<len+1; j++){
                        arr.push(stY+j);
                };
                return arr;
            }else{
                arr.push(edY);
                return arr;
            };
        };

        var startDate = '2010',
            endDate = '2017';

        var timeData = yymmDate(startDate,endDate); 
        console.log(timeData);
    </script>

 

posted @ 2017-04-18 16:06  FyDong  阅读(1556)  评论(0编辑  收藏  举报