[javascript] Date() 함수에서 날짜 형식 출력 하는 방법

반응형





[javascript] Date() 함수에서 날짜 형식 출력 하는 방법




자바스크립트에서 Date() 날짜 함수를 이용해서 특정 형식으로 년, 월, 일, 시간 등을 출력 할때 출력 format 함수가 없어서 고생하는 경우가 많다.


그래서 함수로 만들어서 사용하면 편리하다.



아래 함수를 이용해 보자.



Date.prototype.format = function (f) {

    if (!this.valueOf()) return " ";


    var weekKorName = ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"];

    var weekKorShortName = ["일", "월", "화", "수", "목", "금", "토"];

    var weekEngName = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];

    var weekEngShortName = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];

    var d = this;


    return f.replace(/(yyyy|yy|MM|dd|KS|KL|ES|EL|HH|hh|mm|ss|a\/p)/gi, function ($1) {

        switch ($1) {

            case "yyyy": return d.getFullYear(); // 년 (4자리)

            case "yy": return (d.getFullYear() % 1000).zf(2); // 년 (2자리)

            case "MM": return (d.getMonth() + 1).zf(2); // 월 (2자리)

            case "dd": return d.getDate().zf(2); // 일 (2자리)

            case "KS": return weekKorShortName[d.getDay()]; // 요일 (짧은 한글)

            case "KL": return weekKorName[d.getDay()]; // 요일 (긴 한글)

            case "ES": return weekEngShortName[d.getDay()]; // 요일 (짧은 영어)

            case "EL": return weekEngName[d.getDay()]; // 요일 (긴 영어)

            case "HH": return d.getHours().zf(2); // 시간 (24시간 기준, 2자리)

            case "hh": return ((h = d.getHours() % 12) ? h : 12).zf(2); // 시간 (12시간 기준, 2자리)

            case "mm": return d.getMinutes().zf(2); // 분 (2자리)

            case "ss": return d.getSeconds().zf(2); // 초 (2자리)

            case "a/p": return d.getHours() < 12 ? "오전" : "오후"; // 오전/오후 구분

            default: return $1;

        }

    });

};


String.prototype.string = function (len) { var s = '', i = 0; while (i++ < len) { s += this; } return s; };

String.prototype.zf = function (len) { return "0".string(len - this.length) + this; };

Number.prototype.zf = function (len) { return this.toString().zf(len); };




사용법은 아래와 같다.


[예 1]


var _today = new Date(); // 예제 기준 시간 : 2000-01-01 13:12:12


console.log(_today.format('yyyy-MM-dd'));


console.log(_today.format('HH:mm:ss'));


console.log(_today.format('yyyy-MM-dd(KS) HH:mm:ss'));


console.log(_today.format('yyyy-MM-dd a/p hh:mm:ss'));



위 예제의 출력은 순서대로 아래와 같다.


2000-01-01

13:12:12

2000-01-01(토) 13:12:12

2000-01-01 오후 01:12:12








반응형
TAGS.

Comments