javascript Date() 객체를 활용해 라이브러리 없이 내가 원하는 dateformat을 해놓을 것이다.

 

기존에 쓰던 방식으로는

 

var date = new Date(); 

//객체 선언 후
var year = date.getFullYear();
var mon = date.getMonth()+1;
var day = date.getDate();

var today = year + "-" + (mon<10 ? "0"+mon : mon) + "-" +  (day<10 ? "0"+day : day);

이렇게 많이 쓰고 지금도 많이 쓰고 있을 것이다.

 

물론 뒤에 나오는 fn이 특별한건 없고 위에 쓰인 기본기를 메서드화 시켜서 중복성과 편이성을 늘렸다고 볼 수 있다.

 

 

function dateFormat(date, sep) {  //date format 메서드
    var d = new Date(date),
        month = '' + (d.getMonth() + 1),
        day = '' + d.getDate(),
        year = d.getFullYear();

    if (month.length < 2) month = '0' + month;
    if (day.length < 2) day = '0' + day;

     return [year, month, day].join(sep);
}

 

위와같이 fn을 만들어놓고 내가 년월일 사이에 넣을 문자를 sep 에 넣어주면 끝이다.

 

var today = dateFormat(new Date(), "/") // today = '2020/12/03'

 

이렇게 간단하게 사용이 가능하다.

 

복붙해서 공통js 에 넣어놓고 가져다 쓰면 그만이다.

 

 

시간도 뒤에 붙이고 싶다면 아래의 내용을 참조하면 된다.

 

function formatDateTime(date, by) {
        var d = new Date(date),
            month = '' + (d.getMonth() + 1),
            day = '' + d.getDate(),
            year = d.getFullYear(),
            hour = d.getHours().toString(), 
            minute = d.getMinutes().toString(),
            sec = d.getSeconds().toString;

        if (month.length < 2) month = '0' + month;
        if (day.length < 2) day = '0' + day;
        if (hour.length < 2) hour = '0' + hour;
        if (minute.length < 2) minute = '0' + minute;
        if (minute.length < 2) minute = '0' + minute;
        if (sec.length < 2) sec= '0' + sec;

        return [year, month, day].join(by) + " " + hour + ":" + minute +":"+ sec;
    }