js 日期格式操作

来源:互联网 发布:java并行框架 编辑:程序博客网 时间:2024/06/07 01:51
//扩展Date的format方法     Date.prototype.format = function (format) {        var o = {            "M+": this.getMonth() + 1,            "d+": this.getDate(),            "h+": this.getHours(),            "m+": this.getMinutes(),            "s+": this.getSeconds(),            "q+": Math.floor((this.getMonth() + 3) / 3),            "S": this.getMilliseconds()        }        if (/(y+)/.test(format)) {            format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));        }        for (var k in o) {            if (new RegExp("(" + k + ")").test(format)) {                format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));            }        }        return format;    }    /**      *转换日期对象为日期字符串      * @param date 日期对象      * @param isFull 是否为完整的日期数据,      *               为true时, 格式如"2000-03-05 01:05:04"      *               为false时, 格式如 "2000-03-05"      * @return 符合要求的日期字符串      */      function getSmpFormatDate(date, isFull) {        var pattern = "";        if (isFull == true || isFull == undefined) {            pattern = "yyyy-MM-dd hh:mm:ss";        } else {            pattern = "yyyy-MM-dd";        }        return getFormatDate(date, pattern);    }    /**      *转换当前日期对象为日期字符串      * @param date 日期对象      * @param isFull 是否为完整的日期数据,      *               为true时, 格式如"2000-03-05 01:05:04"      *               为false时, 格式如 "2000-03-05"      * @return 符合要求的日期字符串      */      function getSmpFormatNowDate(isFull) {        return getSmpFormatDate(new Date(), isFull);    }    /**      *转换long值为日期字符串      * @param l long值      * @param isFull 是否为完整的日期数据,      *               为true时, 格式如"2000-03-05 01:05:04"      *               为false时, 格式如 "2000-03-05"      * @return 符合要求的日期字符串      */      function getSmpFormatDateByLong(l, isFull) {        return getSmpFormatDate(new Date(l), isFull);    }    /**      *转换long值为日期字符串      * @param l long值      * @param pattern 格式字符串,例如:yyyy-MM-dd hh:mm:ss      * @return 符合要求的日期字符串      */      function getFormatDateByLong(l, pattern) {        return getFormatDate(new Date(l), pattern);    }    /**    *转换日期对象为日期字符串      * @param l long值      * @param pattern 格式字符串,例如:yyyy-MM-dd hh:mm:ss      * @return 符合要求的日期字符串      */      function getFormatDate(date, pattern) {        if (date == undefined) {            date = new Date();        }        if (pattern == undefined) {            pattern = "yyyy-MM-dd hh:mm:ss";        }        return date.format(pattern);    }  //开始时间不能小于当前时间    function startTimeIsBigThanTotay(startTime){          var startdate = new Date((startTime).replace(/-/g,"/"));            var date = new Date();            if(startdate < date)           {              return false;          }          else          {             return true;          }    }         //结束时间不能小于当前时间     function endThanTotay(endTime){          var enddate = new Date((endTime).replace(/-/g,"/"));            var nowdate = new Date();               if(enddate < nowdate)              {              return false;          }          else          {             return true;          }    }              //结束时间不能小于开始时间     function endThanStart(startTime,endTime){          var startdate = new Date((startTime).replace(/-/g,"/"));            var enddate = new Date((endTime).replace(/-/g,"/"));              if(enddate < startdate)            {              return false;          }          else          {             return true;          }    }    function diffTime(startDate,endDate) {    if(endDate==""||endDate==undefined)    endDate = new Date().getTime();         var diff=Math.abs(endDate - startDate);//时间差的毫秒数                  //计算出相差天数          var days=Math.floor(diff/(24*3600*1000));          //计算出小时数          var daySecond=diff%(24*3600*1000);    //计算天数后剩余的毫秒数          var hours=Math.floor(daySecond/(3600*1000));          //计算相差分钟数          var hourSecond=daySecond%(3600*1000);        //计算小时数后剩余的毫秒数          var minutes=Math.floor(hourSecond/(60*1000));                     //计算相差秒数          var minSecond=hourSecond%(60*1000);      //计算分钟数后剩余的毫秒数          var seconds=Math.round(minSecond/1000);                    var returnStr = seconds + "秒";          if(minutes>0) {              returnStr = minutes + "分" + returnStr;          }          if(hours>0) {              returnStr = hours + "小时" + returnStr;          }          if(days>0) {              returnStr = days + "天" + returnStr;          }          return returnStr;      }          function diffDate(startDate, endDate, type) {      startDate = typeof startDate == 'string' ? new Date(startDate) : startDate;      startDate = startDate.getTime();      endDate = typeof endDate == 'string' ? new Date(endDate) : endDate;      endDate = endDate.getTime();      type = type || 'hour';      var diffValue = Math.abs(endDate - startDate);      var second = 1000,        minute = second * 60,        hour = minute * 60,        day = hour * 24,        month = day * 30,        year = month * 12;      var timeType = {        second: second,        minute: minute,        hour: hour,        day: day,        month: month,        year: year      };           return Math.ceil(diffValue / timeType[type]);    }

原创粉丝点击