본문 바로가기

javascript/Example

[javascript] JavaScript Date Format

javascript에서 날짜 관련된 코딩을 할때... 그 때 마다 날짜 포맷 정해주고 중간에 0 넣고 빼고 어쨋뜬 으아아아앙 귀찮아서

혹 누군가 관련된 라이브러리나 코드를 만들어놓지 않았을가 검색하다가 찾아냈다.

(사실 내가 만들어보겠다고 짜다가 포기)


원본 출처는 이곳

http://www.codeproject.com/Articles/11011/JavaScript-Date-Format



// a global month names array
var gsMonthNames = new Array(
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
);
// a global day names array
var gsDayNames = new Array(
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday'
);
// the date format prototype
Date.prototype.format = function(f)
{
    if (!this.valueOf())
        return ' ';

    var d = this;

    return f.replace(/(yyyy|mmmm|mmm|mm|dddd|ddd|dd|hh|nn|ss|a\/p)/gi,
        function($1)
        {
            switch ($1.toLowerCase())
            {
            case 'yyyy': return d.getFullYear();
            case 'mmmm': return gsMonthNames[d.getMonth()];
            case 'mmm':  return gsMonthNames[d.getMonth()].substr(0, 3);
            case 'mm':   return (d.getMonth() + 1).zf(2);
            case 'dddd': return gsDayNames[d.getDay()];
            case 'ddd':  return gsDayNames[d.getDay()].substr(0, 3);
            case 'dd':   return d.getDate().zf(2);
            case 'hh':   return ((h = d.getHours() % 12) ? h : 12).zf(2);
            case 'nn':   return d.getMinutes().zf(2);
            case 'ss':   return d.getSeconds().zf(2);
            case 'a/p':  return d.getHours() < 12 ? 'a' : 'p';
            }
        }
    );
}

String.prototype.times = function(n) {var s = '';for (var i = 0; i < n; i++) s += this; return s;}
String.prototype.zf = function(len){return "0".times(len - this.length) + this;};
Number.prototype.zf = function(len){return this.toString().zf(len);};
SomeDiv.innerText = (new Date()).format('dddd, mmmm dd, yyyy.');
형태로 사용하면 된다.

한국에 맞게 상요하려면 위의 요일 영문 부분들을 월요일, 화요일 등으로 바꿔주면되고... 월 이름은 사실 필요없다 -_-;;


그리고 이미 그렇게 만들어놓으신 분이 계심

http://stove99.tistory.com/46