我的位置:首頁 >   > 

    [JavaScript]JavaScript 仿 PHP Date Format

    發表時間:
    PHP中有Date函式可以把一串Unix Time 轉換成想要的字串格式

    但是JS中卻需要大費周章的呼叫函式

    所以花了一些時間仿造了PHP的功能

    目前只能把現在的時間格式化

    不過也夠用了

    另外也做了幾隻補0的函式

    /* 左邊補0 */
    function PadLeft(str,lenght){
        if(str.toString().length >= lenght){
            return str;
        }else{
            return PadLeft("0" +str,lenght);
        }
    }

    /* 右邊補0 */
    function PadRight(str,lenght){
        if(str.length >= lenght){
            return str;
        }else{
            return PadRight(str+"0",lenght);
        }
    }
    /*
    Y - 年,四位數字; 如: "1999"
    y - 年,二位數字; 如: "99"
    m - 月份,二位數字,若不足二位則在前面補零; 如: "01" 至"12"
    n - 月份,二位數字,若不足二位則不補零; 如: "1" 至"12"
    d - 幾日,二位數字,若不足二位則前面補零; 如: "01" 至"31"
    j - 幾日,二位數字,若不足二位不補零; 如: "1" 至"31"
    h - 12 小時制的小時; 如: "01" 至 "12"
    H - 24 小時制的小時; 如: "00" 至 "23"
    g - 12 小時制的小時,不足二位不補零; 如: "1" 至12"
    G - 24 小時制的小時,不足二位不補零; 如: "0" 至"23"
    i - 分鐘; 如: "00" 至 "59"
    s - 秒; 如: "00" 至 "59"

    */
    /* 取得日期 */
    function GetDateString(FormatString){
        var date = new Date();
        var hours = (date.getHours() > 11)? date.getHours()-12 : date.getHours();
        hours = (hours == 0)? 12: hours;

        FormatString = FormatString.replace(/Y/g, date.getFullYear());
        FormatString = FormatString.replace(/y/g, date.getFullYear().toString().substr(3));
        FormatString = FormatString.replace(/m/g, PadLeft((date.getMonth()+1), 2));
        FormatString = FormatString.replace(/n/g, date.getMonth()+1);
        FormatString = FormatString.replace(/d/g, PadLeft(date.getDate(), 2));
        FormatString = FormatString.replace(/j/g, date.getDate());
        FormatString = FormatString.replace(/h/g, PadLeft(hours, 2));
        FormatString = FormatString.replace(/H/g, PadLeft(date.getHours(), 2));
        FormatString = FormatString.replace(/g/g, hours);
        FormatString = FormatString.replace(/G/g, date.getHours());
        FormatString = FormatString.replace(/i/g, PadLeft(date.getMinutes(), 2));
        FormatString = FormatString.replace(/s/g, PadLeft(date.getSeconds(), 2));

        return FormatString;
    }