roomescape-refactored/frontend/src/util/DateTimeFormatter.ts
pricelees bdc99c7883 [#37] 테마 스키마 재정의 (#38)
<!-- 제목 양식 -->
<!-- [이슈번호] 작업 요약 (예시: [#10] Gitea 템플릿 생성) -->

## 📝 관련 이슈 및 PR

**PR과 관련된 이슈 번호**
- #37

##  작업 내용
<!-- 어떤 작업을 했는지 알려주세요! -->
- 가격, 시간 등 테마를 정의하는데 필요하다고 느껴지는 필드 추가
- JPA Auditing으로 감사 정보 확인 기능 추가
- 프론트엔드 페이지 디자인 변경 및 새로운 API 반영

## 🧪 테스트
<!-- 어떤 테스트를 생각했고 진행했는지 알려주세요! -->
6db81feb9b 을 바탕으로 향후 다른 모든 기능의 테스트를 통합 테스트로 전환할 예정. 지금은 불필요한 테스트가 너무 많다고 느껴짐.

## 📚 참고 자료 및 기타
<!-- 참고한 자료, 또는 논의할 사항이 있다면 알려주세요! -->
- FInder / Writer / Validator 구조를 수정할 필요가 있음. 복잡하고 가독성이 낮은 로직만 별도로 빼는 것이 더 효율적이라고 판단됨.

Reviewed-on: #38
Co-authored-by: pricelees <priceelees@gmail.com>
Co-committed-by: pricelees <priceelees@gmail.com>
2025-09-03 02:03:37 +00:00

35 lines
1.0 KiB
TypeScript

export const formatDate = (dateStr: string) => {
const date = new Date(dateStr);
const currentYear = new Date().getFullYear();
const reservationYear = date.getFullYear();
const days = ['일', '월', '화', '수', '목', '금', '토'];
const dayOfWeek = days[date.getDay()];
const month = date.getMonth() + 1;
const day = date.getDate();
let datePart = '';
if (currentYear === reservationYear) {
datePart = `${month}${day}일(${dayOfWeek})`;
} else {
datePart = `${reservationYear}${month}${day}일(${dayOfWeek})`;
}
return datePart;
};
export const formatTime = (timeStr: string) => {
const [hourStr, minuteStr] = timeStr.split(':');
let hours = parseInt(hourStr, 10);
const minutes = parseInt(minuteStr, 10);
const ampm = hours >= 12 ? '오후' : '오전';
hours = hours % 12;
hours = hours ? hours : 12;
let timePart = `${ampm} ${hours}`;
if (minutes !== 0) {
timePart += ` ${minutes}`;
}
return timePart;
}