新的js計算時間分段函數


原來初學js時寫過一篇js分段的文章,洋洋灑灑一大篇,現在看來蠢到炸天,最近有時間,重新整理了一下,,想把原來的刪了,免得被人看見丟人,但是想想,就讓他在那存在着吧,看到時,還能激勵着我向更好的方向前進!!

 

基本原理就是根據時間戳,計算前后時間戳的差值對取多少份,求得平均數,每次在開始時間的基礎上加上差值,形成新的時間戳,再將時間戳轉換成我所需要的時間格式

 

是不是超簡單,我覺得也是,發現date函數功能如此強大,其實都沒有寫的必要,直接粘代碼上來,大家參考吧,有啥問題請留言

 

 1 function range(beginTime, endTime) {//后台大哥要求的數據格式,在這邊存入
 2     this.beginTime = beginTime;
 3     this.endTime = endTime;
 4 }
 5 
 6 function addDatetime(dt) {//時間戳轉換日期格式,我這邊的格式是 "2017-10-05 01:02:56",需要補零
 7     dt = new Date(dt);
 8     var dataTime_str = "";
 9 
10     var Year = dt.getFullYear();
11     dataTime_str += Year + "-";//存入年
12 
13     var mon = parseInt(dt.getMonth()) + 1;
14     dataTime_str += (mon < 10 ? ("0" + mon) : mon) + "-";//存入月  .getMonth()函數從0月開始算,正確日期應該+1
15 
16     var day = dt.getDate();
17     dataTime_str += (day < 10 ? ("0" + day) : day) + " ";//存入日
18 
19     var hh_ = dt.getHours();
20     dataTime_str += (hh_ < 10 ? ("0" + hh_) : hh_) + ":";//存入時
21 
22     var mm_ = dt.getMinutes();
23     dataTime_str += (mm_ < 10 ? ("0" + mm_) : mm_) + ":";//存入分
24 
25     var ss_ = dt.getSeconds();
26     dataTime_str += (ss_ < 10 ? ("0" + ss_) : ss_);//存入秒
27 
28     return dataTime_str;
29 }
30 
31 function TimeRange(startTimes, endTimes, amount) {// 傳入參數 2017-10-05 2017-10-06 24 開始時間 結束時間 多少段
32     startTimes = Date.parse(new Date(startTimes + " 00:00:00")); // 計算開始時間的時間戳
33     endTimes = Date.parse(new Date(endTimes + " 23:59:59")); // 計算結束時間的時間戳
34     var timeAll = endTimes - startTimes; // 總時間間隔
35     if(endTimes <= startTimes) {
36         return -1;
37     }
38     if(amount < 2) {
39         return -2;
40     }
41     try {
42         var timeRange = new Array(); // return數組初始化
43         var timeGap = timeAll / amount ; // 分割后時間間隔
44        
45         var slidingTime = 0;
46         var momentTime_front = "";
47         var momentTime_rear = "";
48       
53         for(var i = 0; i < amount; i++) {
54 
55             momentTime_front = addDatetime(startTimes + timeGap * (i  ));
56             momentTime_rear = addDatetime(startTimes + timeGap * (i  +1) - 1000);
57 
58             timeRange.push(new range(momentTime_front, momentTime_rear));
59         }
60         
64         return timeRange;
65     } catch(e) {
66         alert("出錯了:" + e);
67     }
68 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM