强化Date对象

js日期格式化,js获取月内天数,js获取星座

拭目以待 发布于


日期格式化: 

Date.prototype.format = function(fmt){
    var o = {
        "M+": this.getMonth() + 1, //月份 
        "D+": this.getDate(), //日 
        "d+": this.getDate(), //日 
        "H+": this.getHours(), //小时 
        "h+": this.getHours(), //小时 
        "m+": this.getMinutes(), //分 
        "s+": this.getSeconds(), //秒 
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
        "S": this.getMilliseconds() //毫秒 
    };
    if (/([Y,y]+)/.test(fmt)){
        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    } 
    for (var k in o){
        if(new RegExp("(" + k + ")").test(fmt)){
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        } 
    }
    return fmt;
}
//调用方式:
new Date().format('YYYY-MM-DD HH:mm:ss');  //"2016-08-12 11:34:39"


获取月内天数: 

Date.prototype.getDayNumber = function(){
    //是否为闰年
  var _year = this.getFullYear(),
      _month = this.getMonth() + 1;
    var isLeapYear = (_year % 4 == 0) && (_year % 100 != 0 || _year % 400 == 0);
    var len = 30;
    //当前为二月份
    if(_month === 2){
        len = isLeapYear ? 29 : 28;
    }
    //当前为大月
    if([1,3,5,7,8,10,12].indexOf(_month) !== -1){
        len = 31;
    }
    return len;
}
//调用方式:
new Date('2016-02-01').getDayNumber(); //==>29


获取星座: 

Date.prototype.getConstellation = function(){
  var _month = this.getMonth() + 1,
      _day = this.getDate();
    var s= "魔羯水瓶双鱼牡羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯";
    var arr= [20,19,21,21,21,22,23,23,23,23,22,22];
    return s.substr(_month * 2 - (_day < arr[_month - 1] ? 2 : 0), 2) + '座';
}
//调用方式:
new Date('1987-12-27').getConstellation();  //==>"魔羯座"