[JAVASCRIPT] Convert Date format

2021. 9. 2. 10:50카테고리 없음

반응형

첫번째 방법
function convertDateFormat(date) {
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    month = month >= 10 ? month : '0' + month;
    var day = date.getDate();
    day = day >= 10 ? day : '0' + day;
    return [year, month, day].join('-');
}

var date = new Date();
var convertedDate = convertDateFormat(new Date());
console.log(date);
console.log(convertedDate);

// 출력
// Tue May 25 2021 01:54:59 GMT+0900 (대한민국 표준시)
// 2021-05-25

 

두번째 방법
function convertDateFormat(date) {
    return date.toLocaleDateString().replace(/\./g, '').split(' ').map((v,i)=> i > 0 && v.length < 2 ? '0' + v : v).join('-');
}

var date = new Date();
var convertedDate = convertDateFormat(new Date());
console.log(date);
console.log(convertedDate);

// 출력
// Tue May 25 2021 01:55:27 GMT+0900 (대한민국 표준시)
// 2021-05-25

 

세번째 방법

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); };
위의 함수를 스크립트 안에 만들어 주면 간단하게 데이터 형식을 변환시켜줄 수 있는데,

사용하는 방법은 다음과 같다. 

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

console.log(day.format('yyyy-MM-dd'));   //2020-08-02
console.log(day.format('HH:mm:ss'));    //12:10:05
console.log(day.format('yyyy-MM-dd(KS) HH:mm:ss'));   //2020-08-02(일) 12:10:05
console.log(day.format('yyyy-MM-dd a/p hh:mm:ss'));   //2020-08-02 오후 12:10:05
위의 함수를 사용하였더니 다음과 같이 원하는형식으로 적용이 된 것을 확인할 수 있었다. 

반응형