經常使用的時間函數整理

  此次的項目中,有不少用到了時間函數,報錯直接獲取本月的開始日期,結束如期。本週的開始時間,結束時間等。這裏簡單的記錄一下,方便下次引用。時間格式你們能夠自行修改,例子中都是格式化成爲了2019-07-01 15:55:00這樣的格式。數組

  1. 最經常使用的一個,就是對JS原生new Date()的擴展,能夠格式成爲本身想要的格式。(如下的函數都是須要調用這個的,因此必需要引入這個)
 1 /**
 2 * 對Date的擴展,將 Date 轉化爲指定格式的String
 3 * 月(M)、日(d)、小時(h)、分(m)、秒(s)、季度(q) 能夠用 1-2 個佔位符, 
 4 * 年(y)能夠用 1-4 個佔位符,毫秒(S)只能用 1 個佔位符(是 1-3 位的數字) 
 5 * 例子: 
 6 * (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 
 7 * (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18 
 8 */
 9 Date.prototype.Format = function (fmt) { //author: meizz 
10     var o = {
11         "M+": this.getMonth() + 1, //月份 
12         "d+": this.getDate(), //
13         "h+": this.getHours(), //小時 
14         "m+": this.getMinutes(), //
15         "s+": this.getSeconds(), //
16         "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
17         "S": this.getMilliseconds() //毫秒 
18     };
19     if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
20     for (var k in o)
21     if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
22     return fmt;
23 }

  2.獲取這個月,或者上個月,或者下個月的開始日期和結束日期,你們簡單的修改,就能獲取到本月的開始時間和結束時間函數

 1 //獲取當月或者上個月數據的開始日期和結束日期 get_date(0):當月的開始和結束 get_date(-1):上個月的開始和結束日期
 2         function get_date(addMonth){ 
 3             var now_date = new Date();
 4             var month = now_date.getMonth();
 5             var year = now_date.getFullYear();
 6             var this_yue_begin = new Date(new Date(year,month,1)).Format("yyyy-MM-dd");
 7             var this_yue_end = "";
 8             var set_yue_begin = "";
 9             var set_yue_end = "";
10             if(addMonth){
11                 if((month+addMonth)>=12){
12                     set_yue_begin = new Date(new Date(year+1,(month+addMonth-12),1)).Format("yyyy-MM-dd");
13                 }else if((month+addMonth)<=0){
14                     set_yue_begin = new Date(new Date(year-1,11,1)).Format("yyyy-MM-dd");
15                 }else{
16                     set_yue_begin = new Date(new Date(year,month+addMonth,1)).Format("yyyy-MM-dd");
17                 }
18                 
19                 if(month+addMonth==11){
20                     set_yue_end = new Date(new Date(year+1,0,1).getTime()-1000).Format("yyyy-MM-dd");
21                 }else{
22                     set_yue_end = new Date(new Date(year,month+addMonth+1,1).getTime()-1000).Format("yyyy-MM-dd");
23                 }
24                 return set_yue_begin+" 00:00:00 - "+set_yue_end+" 23:59:59";
25             }else{
26                 if(month==11){
27                     this_yue_end = new Date(new Date(year+1,0,1).getTime()-1000).Format("yyyy-MM-dd");
28                 }else{
29                     this_yue_end = new Date(new Date(year,month+1,1).getTime()-1000).Format("yyyy-MM-dd");
30                 }
31                 return this_yue_begin +" 00:00:00 - "+this_yue_end+" 23:59:59";
32             }
33         }

  3.獲取本週的開始時間和結束時間this

 1 //獲取本週的開始和結束時間,裏面也是傳0是獲取本週的時間,傳-1是獲取上一週的
 2         function getWeekStartAndEnd(AddWeekCount) { 
 3             //起止日期數組   
 4             var startStop = new Array(); 
 5             //一天的毫秒數   
 6             var millisecond = 1000 * 60 * 60 * 24; 
 7             //獲取當前時間   
 8             var currentDate = new Date();
 9             //相對於當前日期AddWeekCount個周的日期
10             currentDate = new Date(currentDate.getTime() + (millisecond * 7*AddWeekCount));
11             //返回date是一週中的某一天
12             var week = currentDate.getDay(); 
13             //返回date是一個月中的某一天   
14             var month = currentDate.getDate();
15             //減去的天數   
16             var minusDay = week != 0 ? week - 1 : 6; 
17             //得到當前周的第一天   
18             var currentWeekFirstDay = new Date(currentDate.getTime() - (millisecond * minusDay)); 
19             //得到當前周的最後一天
20             var currentWeekLastDay = new Date(currentWeekFirstDay.getTime() + (millisecond * 6));
21             //添加至數組   
22             startStop.push(getDateStr3(currentWeekFirstDay)); 
23             startStop.push(getDateStr3(currentWeekLastDay)); 
24         
25             return getDateStr3(currentWeekFirstDay)+" 00:00:00 - "+getDateStr3(currentWeekLastDay)+" 23:59:59"; 
26         }
27         function getDateStr3(date) {
28             var year = "";
29             var month = "";
30             var day = "";
31             var now = date;
32             year = ""+now.getFullYear();
33             if((now.getMonth()+1)<10){
34                 month = "0"+(now.getMonth()+1);
35             }else{
36                 month = ""+(now.getMonth()+1);
37             }
38             if((now.getDate())<10){
39                 day = "0"+(now.getDate());
40             }else{
41                 day = ""+(now.getDate());
42             }
43             return year+"-"+month+"-"+day;
44         }

  4.獲取最近三十天的時間spa

1 function get_30_date(){
2             var now_date = new Date().Format("yyyy-MM-dd hh:mm:ss");
3             var ago_30 = new Date(new Date().getTime()-30*24*60*60*1000).Format("yyyy-MM-dd hh:mm:ss");
4             return ago_30+" - "+now_date;
5         }
相關文章
相關標籤/搜索