﻿/***********************************************************日期格式化 开始****************************************************************************************/
/**
@explain:format日期格式有几种,y表示看，M表示月，d表示日，H表示时，m表示分，s表示秒，其中y为yy或者yyyyeg:{"yy-MM-dd HH:mm:ss","yyyy-MM-dd HH:mm:ss"}，年月日和时分秒之间用空格隔开，年月日用{'-','/'}隔开，时分秒用':'隔开
**/
/**
* @explain: javascript实现日期格式化
**/
Date.prototype.formatter = function (format)
{
    var temp;
    var c = [" ","-",":","/"]
    var c1 = "/"
    var arr = format.splits(c);
    var yy = "";
    var MM = "";
    var dd = "";
    var HH = "";
    var mm = "";
    var ss = "";
    
    if(arr.length > 0)
    {
        for(var l = 0; l < arr.length; l ++)
        {
            temp = this.getUnitPart(arr[l]);
            switch(arr[l])
            {
                case "yyyy":
                    yy = temp;
                    break;
                case "yy":
                    yy = temp;
                    break;
                case "MM":
                    MM = temp;
                    break;
                case "dd":
                    dd = temp;
                    break;
                case "HH":
                    HH = temp;
                    break;
                case "mm":
                    mm = temp;
                    break;
                case "ss":
                    ss = temp;
                    break;
            }
        }
    }
    
    return format.replace("yyyy",yy).replace("yy",yy).replace("MM",MM).replace("dd",dd).replace("HH",HH).replace("mm",mm).replace("ss",ss);
};
Date.prototype.getUnitPart = function(part)
{    
    switch(part)
    {
        case "yyyy":
            return this.getFullYear();
            break;
        case "yy":
            return String(this.getFullYear()).substring(2);
            break;
        case "MM":
            return this.getMonth()+1;
            break;
        case "dd":
            return this.getDate();
            break;
        case "HH":
            return this.getHours();
            break;
        case "mm":
            return this.getMinutes();
            break;
        case "ss":
            return this.getSeconds();
            break;
    }
};
/***********************************************************日期格式化 结束****************************************************************************************/

/***********************************************************String扩展 开始****************************************************************************************/
String.prototype.splits = function(obj)
{
    if(typeof(obj) == "string")
    {
        return this.split(obj);
    }
    else
    {
        var ret = new Array();
        var raw = String(this);
        for(var l = 0; l < obj.length; l ++)
        {
            if(typeof(raw) == "string")
            {
                raw = raw.split(obj[l]);
            }
            else
            {
                for(var loop = 0; loop < raw.length; loop ++)
                {
                     ret = ret.concat(raw[loop].split(obj[l]));
                }
                raw = ret.clone();
                ret.length = 0;
            }
        }
        return raw;
    }
};
/***********************************************************String扩展 结束****************************************************************************************/

/***********************************************************Array扩展 开始****************************************************************************************/
Array.prototype.clone = function ()
{
    var arrClone = [];
    for(var l = 0; l < this.length; l ++)
    {
        arrClone.push(this[l]);
    }
    return arrClone;
    //this.slice(0);
    //[].concat(this);
    //this.concat();
}
/***********************************************************Array扩展 结束****************************************************************************************/
