DOTY

tip. Date.format 본문

Firebase

tip. Date.format

증식세포 2021. 2. 1. 21:34
728x90
반응형

JavaScript에서 날짜를 입맛대로 형식을 바꾸는 방법에 대해서 소개하려 한다.

 

함수 하나만 추가해주면 되는데 열심히 구글링을 하다보니 거의 다~~~~ 이 코드를 쓰길래 나도 썼다 ㅎㅎㅎ

배꼽인사(_ _)

Date.prototype.format = function (f) {
    if (!this.valueOf()) return " ";

    var weekName = [
      "일요일",
      "월요일",
      "화요일",
      "수요일",
      "목요일",
      "금요일",
      "토요일",
    ];
    var d = this;
    var h;

    return f.replace(/(yyyy|yy|MM|dd|E|hh|mm|ss|a\/p)/gi, function ($1) {
      switch ($1) {
        case "yyyy":
          return d.getFullYear();
        case "yy":
          return (d.getFullYear() % 1000).zf(2);
        case "MM":
          return (d.getMonth() + 1).zf(2);
        case "dd":
          return d.getDate().zf(2);
        case "E":
          return weekName[d.getDay()];
        case "HH":
          return d.getHours().zf(2);
        case "hh":
          return ((h = d.getHours() % 12) ? h : 12).zf(2);
        case "mm":
          return d.getMinutes().zf(2);
        case "ss":
          return d.getSeconds().zf(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);
  };

이 함수를 넣어준다. 활용하는 예시는 다음과 같다.

let today = new Date();
console.log(today.format("yyyy.MM.dd a/p hh:mm:ss"));

로그값으로 '년.월.일 오전/오후 시:분:초' 로 찍히게 된다.

굳굳!!

728x90
반응형
Comments