代码改变世界

js日期操作函数

2016-06-17 08:58  冰羽幻灵  阅读(779)  评论(0编辑  收藏  举报
  1 /**
  2  * 获取当前时间的本地格式字符串
  3  * @returns {String}
  4  */
  5 Date.prototype.getLocaleTimeStr = function(){
  6     return this.toLocaleTimeString();
  7 };
  8 
  9 /**
 10  * 获取当前时间的本地格式字符串,只保留数字部分
 11  * @returns {String}
 12  */
 13 Date.prototype.getPureLocaleTimeStr = function(){
 14     return this.toLocaleTimeString().replace(/^\D*/, '');
 15 };
 16 
 17 /**
 18  * 获取间隔几秒的时间
 19  * @param gap 数字
 20  * @returns {Date}
 21  */
 22 Date.prototype.getGapsSecondLocaleTimeStr = function(gap){
 23     //return new Date(this - gap * 1000);
 24 }
 25 
 26 /**
 27  *  获取间隔几分钟的时间
 28  * @param gap 数字
 29  * @returns {Date}
 30  */
 31 Date.prototype.getGapsMinuteLocaleTimeStr = function(gap){
 32     //return new Date(this - gap * 60 * 1000);
 33 };
 34 /**
 35  * 获取七天前的日期
 36  * @returns{String}
 37  */
 38 Date.prototype.getPreSevenDate = function(){
 39     this.setDate(this.getDate()-7);
 40     return this.Format("yyyy-MM-dd hh:mm:ss");
 41 };
 42 /**
 43  * 获取某一天的日期
 44  * @param {number} day    多少天前/后的日期
 45  * @returns {String}
 46  */
 47 Date.prototype.getSomeDayDate = function(day){
 48     this.setDate(this.getDate() + day);
 49     return this.Format("yyyy-MM-dd hh:mm:ss");
 50 };
 51 /**
 52  * 获取当前时间(调用方法:new Date().Format("yyyy-MM-dd hh:mm:ss"))
 53  * @param fmt
 54  * @returns {String}/2016-01-01 00:00:00/
 55  */
 56 Date.prototype.Format = function(fmt) {
 57     var o = {
 58         "M+" : this.getMonth() + 1,
 59         "d+" : this.getDate(),
 60         "h+" : this.getHours(),
 61         "m+" : this.getMinutes(),
 62         "s+" : this.getSeconds(),
 63         "q+" : Math.floor((this.getMonth() + 3) / 3),
 64         "S" : this.getMilliseconds()
 65     };
 66     if (/(y+)/.test(fmt))
 67         fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "")
 68                 .substr(4 - RegExp.$1.length));
 69     for ( var k in o)
 70         if (new RegExp("(" + k + ")").test(fmt))
 71             fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k])
 72                     : (("00" + o[k]).substr(("" + o[k]).length)));
 73     return fmt;
 74 };
 75 
 76 /**
 77  * 日期操作相关方法
 78  */
 79 var myDateUtil = {
 80         /**
 81          * 设置日期(0为今天,-1为昨天,以此类推)
 82          * @param AddDayCount
 83          * @returns {String}/2016-01-01/
 84          */
 85     GetDateStr:function(AddDayCount){
 86         var dd = new Date();
 87         dd.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期
 88         var y = dd.getFullYear();
 89         var m = dd.getMonth()+1;//获取当前月份的日期
 90         if(m<10){
 91             m = '0'+m;
 92         }
 93         var d = dd.getDate();
 94         if(d<10){
 95             d = '0'+d;
 96         }
 97         
 98         return y+"-"+m+"-"+d;
 99     },
100     /**
101      * 根据一个日期查找另一个日期
102      * @param {} theDay:2016-04-20
103      * @param {} AddDayCount:(-1为前一天,1为后一天,0不变,以此类推)
104      * @return {String}
105      */
106     findDayByDay:function(theDay,AddDayCount){
107         var formatDay = new Date(theDay);
108         formatDay.setDate(formatDay.getDate()+AddDayCount);//获取AddDayCount天后的日期
109         var y = formatDay.getFullYear();
110         var m = formatDay.getMonth()+1;//获取当前月份的日期
111         if(m<10){
112             m = '0'+m;
113         }
114         var d = formatDay.getDate();
115         if(d<10){
116             d = '0'+d;
117         }
118         
119         return y+"-"+m+"-"+d;
120     },
121     /**
122      * 返回距 1970 年 1 月 1 日之间的毫秒数(可用于比较时间大小)
123      * @param {} Date 格式为:yyyy-mm-dd
124      */
125     formatTimesFromDate:function(Date){
126         var arr = Date.split("-");
127         var newDate = new Date(arr[0],arr[1],arr[2]);
128         var resultDate = newDate.getTime();
129         return resultDate;
130     }
131 }