getNewDate

주어진 Date 객체나 날짜 문자열에 변형 함수를 적용하여 새로운 Date 객체를 반환하는 유틸리티 함수입니다.

Parameters

이름타입설명기본값
dateDate | string변형할 날짜-
dateFn(date: Date) => void날짜를 변형하는 함수-

Return

Date - 변형된 새로운 Date 객체

Usage

import { getNewDate } from '@teamsparta/utils';
 
// 기본 사용법
const tomorrow = getNewDate(new Date(), (date) => {
  date.setDate(date.getDate() + 1);
});
 
// 문자열 날짜 사용
const nextMonth = getNewDate('2024-01-01', (date) => {
  date.setMonth(date.getMonth() + 1);
});

Example

날짜 더하기

function addDays(date: Date, days: number) {
  return getNewDate(date, (d) => {
    d.setDate(d.getDate() + days);
  });
}

시간 설정

function setTime(date: Date, hours: number, minutes: number) {
  return getNewDate(date, (d) => {
    d.setHours(hours);
    d.setMinutes(minutes);
  });
}

월 변경

function changeMonth(date: Date, monthOffset: number) {
  return getNewDate(date, (d) => {
    d.setMonth(d.getMonth() + monthOffset);
  });
}

주의사항

  • 원본 Date 객체는 변경되지 않고 새로운 Date 객체가 반환됩니다.
  • 문자열로 날짜를 전달할 경우 유효한 날짜 형식이어야 합니다.
  • dateFn 내부에서 반환값은 무시되며, 변형된 date 객체가 자동으로 반환됩니다.
  • 날짜 변경 시 월말일 등의 경계값 처리에 주의가 필요합니다.