Front/JavaScript

[JavaScript] 자바스크립트 날짜 문자열 포맷 반환 함수 만들기 (기본값 매개변수 설정하기)

헹창 2022. 4. 6.
반응형

기본값 매개변수

기본값 함수 매개변수 (default function parameter) 를 사용하면 값이 없거나   undefined   가 전달될 경우 이름붙은 매개변수를 기본 값으로 초기화할 수 있다.
function multiply(a, b = 1) {
	console.log(a * b);
}

multiply(5, 2);	// console : 10
multiply(5);	// console : 5

자바스크립트 함수의 매개변수는   undefined   가 기본이지만, 일부 상황에서 다른 기본값 매개변수가 필요할 때 설정한다.

위의 예제에서 만약 매개변수 b를 기본 값 설정하지 않았다면 multiply(5) 는 b가 undefined가 되어 NaN 이 표출됐을 것이다.

 

 

날짜 Date / String →  문자열 포맷 반환

class CmmnFunc {
	... 공통함수들
    
    static getDateString(date = new Date(), format = "yyyy-mm-dd hh:mi:ss") {
		var eng = /[a-zA-Z]/;
		if(typeof(date) == "string") {
			format = format.replace(/\|hh24/gi, " hh");
			for(var i = 0; i < date.length; i++){
				format = format.replace(eng, date[i]);
			}
			/*date 문자열과 format 길이가 맞지 않는 경우*/
			if(format.search(eng) != -1) format = format.substr(0, format.search(eng) - 1);
			return format;
		}
			
		const yy = date.getFullYear();
		const mm = this.addZero(date.getMonth() + 1);
		const dd = this.addZero(date.getDate());
		const hh = this.addZero(date.getHours());
		const mi = this.addZero(date.getMinutes());
		const ss = this.addZero(date.getSeconds());
			
		format = format.replace("yyyy", yy);
		format = format.replace("mm", mm);
		format = format.replace("dd", dd);
		format = format.replace("hh", hh);
		format = format.replace("mi", mi);
		format = format.replace("ss", ss);
			
		return format;
	}
    
    /*남은 자리 수 만큼 0 채우기 (기본 값 = 2)*/
    static addZero(data, len = 2) {
		const dlen = String(data).length;
		return (dlen >= len ? data : new Array(len - dlen + 1).join("0") + data);
    }
}

 

공통적으로 자주 사용하는 함수들을 class로 묶어 관리한다.

사용하는 구조는 조금 다르지만, 포스팅 용으로 따라하기 편하게 정적 메소드 (static method) 로만 변경한 것이다.

 

getDateString 메소드는 date와  format을 파라메터 변수를 갖는다.

 

date는 Date 타입과 String 타입 모두 가능하다.

만약 넘겨주지 않은 경우 현재 일시인   new Date( )   데이터가 기본 값으로 할당된다.

 

format 은 표출하고 싶은 포맷을 설정하면 된다. 

기본 값은   "yyyy-mm-dd hh:mi:ss"   이다.

사용 예시

// 현재 일시 : 2022-04-06 16:40:30 인 경우
CmmnFunc.getDateString();	
// output : 2022-04-06 16:40:30
CmmnFunc.getDateString("20200406");	
// output : 2022-04-06
CmmnFunc.getDateString("20220406101010");	
// output : 2022-04-06 10:10:10
CmmnFunc.getDateString("20220406101010", "yyyy/mm/dd hh:mi:ss");	
// output: 2022/04/06 10:10:10

 

 

 

728x90
반응형

댓글

추천 글