[React][utility]날짜 관련 utils 모음

김민재·2023년 12월 11일

React

목록 보기
4/5

📕 날짜 형식 변환

날짜 형식 : YYYY.MM.DD

/**
 * @param date  string
 * @param format string
*/

export const commaDate = (date:string, format?:string) : string => {
  if (!date) return ''; // date 값이 없을 때, 빈 값 return => 오류 방지
  
  let _commaDate;
  if(format === 'MM.DD') {
    _commaDate = date.substring(4,6) + '.' + date.substring(6,8);
  } else {
    _commaDate =
      date.substring(0, 4) +
      '.' +
      date.substring(4, 6) +
      '.' +
      date.substring(6, 8);
  }
  return _commaDate;

날짜 형식 : YYYYMMDD

/**
 * @param date  string 날짜 8자리
 * @param division string 공통 구분자 (, -  / ' ' 등)
 * @description 일자가 없는 경우 생략 함
 */

export const dateDivision = (date: string, division: string): string => {
  let _dateDivision = date.substring(0, 4) + division + date.substring(4, 6);
  if (date.length > 6) {
    _dateDivision += division + date.substring(6, 8);
  }
  return _dateDivision;
};

날짜 형식 : YYYY-MM-DD hh:mm:ss

/**
 * 날짜형식 YYYY-MM-DD hh:mm:ss
 * @param date  string
 */
export const fullDate = (date: string): string =>
  `${date.substring(0, 4)}-${date.substring(4, 6)}-${date.substring(
    6,
    8,
  )} ${date.substring(8, 10)}:${date.substring(10, 12)}`;

특정 날짜 요일 구하기

/**
 * @param date  string YYYYMMDD
 */
export const getDay = (date: string): string => {
  const week = ['일', '월', '화', '수', '목', '금', '토'];
  const strDay =
    date.substring(0, 4) +
    '-' +
    date.substring(4, 6) +
    '-' +
    date.substring(6, 8);
  const day = moment(strDay).day();
  const _getDay = week[day];

  return _getDay;
};

D-Day 남은 날짜 계산

/**
 * @param {string} //마감날짜
 */
export const dDay = (date: string): string => {
  //마감날짜
  const yearEnd = date.substr(0, 4);
  const monthEnd = date.substr(4, 2);
  const dayEnd = date.substr(6, 2);
  const endDate = new Date(monthEnd + '/' + dayEnd + '/' + yearEnd);
  //현재날짜
  const currDate = new Date();
  //Dday 남은날짜
  const dday = (currDate.getTime() - endDate.getTime()) / 86400000;
  return dday.toString();
};
profile
주니어 개발자 (Front-End)

0개의 댓글