728x90
const now = new Date();
위의 코드는 문제점이 있다.
- 시간대를 알 수 없음
- 화면에 보여줄 때와 데이터를 저장할 때 값 불일치 (서버는 UTC, 클라이언트는 로컬 시간대로 보여주는 경우가 많음)
- DST(Summer Time) 문제 (하절기에 국가의 표준시보다 한 시간 앞당겨 사용 - 해외주식 할 때 경험 가능)
자바스크립트에서 Date 객체는 Number 타입이기 때문에 관점 원래 날짜의 의미가 사라지고, 정확히 알 수 없다.
이러한 문제를 해결하기 위해 시간대가 포함된 날짜/시간 표현 방식이 필요
<!--dayjs와 timezone 플러그인 사용 예제 -->
import dayjs from 'dayjs';
import utc from 'dayjs/plugin/utc';
import timezone from 'dayjs/plugin/timezone';
dayjs.extend(utc);
dayjs.extend(timezone);
const dt = dayjs.tz("2025-05-19 12:00", "Asia/Seoul");
console.log(dt.format());
// → 2025-05-19T12:00:00+09:00
console.log(dt.tz("America/New_York").format());
// → 2025-05-18T23:00:00-04:00
코드까지는 알아봤고, 그럼 언제 사용해야 할까?
- 글로벌 서비스에서 사용자별로 현재 시간을 보여주어야 할 때
- 예약 시스템, 항공권 조회, 금융 거래 기록 등 시간이 중요할 때
- 서버와 클라이언트 동일한 시간으로 사용해야 할 때
728x90
'TECH' 카테고리의 다른 글
| setHTMLUnsafe (2) | 2025.05.26 |
|---|---|
| content-visibility 속성 (2) | 2025.05.22 |
| Swiper (0) | 2024.10.25 |
| 🔎 EC2 + Route S3 + SSL 인증서 (0) | 2024.08.11 |
| Lottie 로딩바 적용하기 (0) | 2023.08.06 |