/* TIME FORMAT */
const FULL = "yyyy-MM-dd HH:mm:ss.SSS"; // YYYY-MM-DD HH:MM:SS.sss
const LOG = "MM/dd HH:mm:ss.SSS"; // MMDD HHMMSS.sss
const SEC = "yyyy-MM-dd HH:mm:ss"; // YYYY-MM-DD HH:MM:SS
const MIN = "yyyy-MM-dd HH:mm"; // YYYY-MM-DD HH:MM
const DATE = "yyyy-MM-dd"; // YYYY-MM-DD
const YMDHMSmmm = "yyyyMMddHHmmssSSS"; // YYYYMMDDHHMMSSmmm
const YMDHMSmm = "yyyyMMddHHmmssSS"; // YYYYMMDDHHMMSSmm
const YMDHMS = "yyyyMMddHHmmss"; // YYYYMMDDHHMMSS
const YMD = "yyyyMMdd"; // YYYYMMDD
const TIME = "HH:mm:ss.SSS"; // HH:MM:SS.sss
const TIME_SEC = "HH:mm:ss"; // HH:MM:SS
const TIME_MIN = "HH:mm"; // HH:MM
const weekKorName = ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"];
const weekKorShortName = ["일", "월", "화", "수", "목", "금", "토"];
const weekEngName = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
const weekEngShortName = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
const monthEngName = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
const monthEngShortName = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
Date.prototype.format = function (f) {
if (!this.valueOf()) return " ";
var d = this;
return f.replace(/(YYYY|yyyy|YY|yy|MM|MES|MEL|DD|dd|WKS|WKL|WES|WEL|HH|hh|mm|ss|SSS|A\/PK|A\/PE)/gi, function ($1) {
switch ($1) {
case "YYYY": case "yyyy": return d.getFullYear(); // 년 (4자리)
case "YY": case "yy": return (d.getFullYear() % 1000).zf(2);// 년 (2자리)
case "MM": return (d.getMonth() + 1).zf(2); // 월 (2자리)
case "MES": return monthEngShortName[d.getMonth()]; // 월 (짧은 영어)
case "MEL": return monthEngName[d.getMonth()]; // 월 (긴 영어)
case "DD": case "dd": return d.getDate().zf(2); // 일 (2자리)
case "WKS": return weekKorShortName[d.getDay()]; // 요일 (짧은 한글)
case "WKL": return weekKorName[d.getDay()]; // 요일 (긴 한글)
case "WES": return weekEngShortName[d.getDay()]; // 요일 (짧은 영어)
case "WEL": 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 "SSS": return d.getMilliseconds().zf(3); // 밀리초 (3자리)
case "A/PK": return d.getHours() < 12 ? "오전" : "오후"; // 오전/오후 구분
case "A/PE": return d.getHours() < 12 ? "AM" : "PM"; // 오전/오후 구분
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); };
// 2021-01-05 17시 56분 기준
new Date().format("MM월 DD일(WKS) A/PK hh시 mm분");
"01월 05일(화) 오후 5시 56분"
new Date().format(TIME_MIN);
"17:56"