자바스크립트에서 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
'Develop > HTML & JavaScript & CSS' 카테고리의 다른 글
iOS Safari 뒤로가기 새로고침 시 데이터가 사라지는 현상 관련 (0) | 2020.02.13 |
---|---|
unix timestemp (0) | 2020.01.21 |
ajax 배열 전송 ($.ajaxSettings.traditional) (0) | 2019.12.13 |
Javascript 코드 작성규칙 (0) | 2019.11.28 |
CSS 코드작성 규칙 (0) | 2019.11.28 |