자바스크립트/활용
자바스크립트 활용5
whatd0udo
2024. 2. 24. 20:59
문제45 : getTime()함수 사용하기
Date객체의 메소드 중 하나인 getTime()은 1970년 1월 1일 0시 0분 0초 이후로부터 지금까지 흐른 시간을 천분의 1초 단위(ms)로 반환합니다. 이를 이용하여 현재 연도(2024)를 출력해보세요.
getTime() 메서드
date 객체의 메서드 중 하나로 1970년 1월1일 00:00:00 UTC부터 해당 날짜/시간까지의 경과 시간을 밀리초 단위로 반환
이 값을 사용하여 특정 날짜와 시간의 타임 스탬프를 얻거나, 두 날짜 간의 차이를 계산할 수 있다.
1. 현재 날짜와 시간의 타임 스탬프 구하기
var now = new Date();
console.log(now, getTime());
2. 특정 날짜와 시간의 타임 스탬프 구하기
var speciticDate = new Date('December 17, 1995, 03:24:00');
console.log(specificDate , getTime());
3. 두 날짜 간의 차이 계산하기
var startDate = new Date('January 1, 2020 00:00:00');
var endDate = new Date('January 1, 2021 00:00:00');
var difference = endDate.getTime() - startDate.getTime();
//밀리초를 일 ( day ) 단위로 변환
var daysDifference = difference / (1000*60*60*24)
console.log(daysDifference);
로직 과정
1. 현재 날짜와 시간 생성
date 객체를 사용하여 현재 날짜와 시간의 인스턴스를 생성
2. 현재 시점의 밀리초 얻기
생성된 date 객체에서 getTime() 메서드를 호출하여 , 1970년 1월 1일 0시 0분 0초 UTC 이후로 부터 현재까지 흐른 시간을 밀리초(ms)단위로 얻는다
3. 밀리초를 이용하여 연도 계산
얻어진 밀리초를 기반으로 현재 연도를 계산하기 위해, 밀리초를 다시 date 객체로 변환한다.
4. 현재 연도 추출
변환된 date 객체에서 getFullYear() 메서드를 호출하여 현재 연도를 추출한다.
5. 결과 추출
최종적으로 얻어진 연도를 출력한다.
첫번째 코드 ( 가정 기반)
// 1. 현재 날짜와 시간 생성
var currentDate = new Date();
// 2. 현재 시점의 밀리초 얻기
var currentMilliseconds = currentDate.getTime();
// 3. 밀리초를 이용하여 연도 계산 (이 단계는 생략 가능, 바로 현재 Date 객체에서 연도를 얻을 수 있음)
var currentYear = new Date(currentMilliseconds).getFullYear();
// 4. 현재 연도 추출 (생략 가능, 바로 위에서 설명한 대로 직접 currentDate 사용 가능)
// 5. 결과 출력
console.log(currentYear);
두번째 코드
function getCurrentYear() {
const now = new Date(); // 현재 시간을 나타내는 Date 객체 생성
const year = now.getFullYear(); // 현재 연도를 얻음
return year;
}
console.log(getCurrentYear()); // 현재 연도 출력
위 두 코드의 차이는 접근방식에서 차이에 대해 아래 표를 이용하여 정리했다.
기준 | 첫 번째 코드 (getCurrentYear 함수) | 두 번째 코드 (밀리초 사용) |
목적 | 현재 연도를 반환 | 현재 연도를 계산하여 반환 |
메서드 사용 | 직접 getFullYear() | getTime() 후 getFullYear() |
단계 수 | 2단계 (Date 객체 생성, getFullYear() 호출) | 4단계 (Date 객체 생성, getTime() 호출, new Date()로 밀리초에서 Date 객체 생성, getFullYear() 호출) |
간결성 | 더 간결 | 비교적 복잡 |
추가 변환 과정 | 없음 | 밀리초를 Date 객체로 변환 |
학습 포인트 | Date 객체와 getFullYear()의 직접 사용 | Date 객체의 getTime() 메서드 사용 및 밀리초를 다루는 방법 |
실용성 | 실제 사용에 더 적합 | 학습 목적에는 적합하지만 실제 사용에서는 간결한 방법을 선호 |
결과 도출 방식 | 직접적 | 간접적 (밀리초를 경유) |
성능 | 더 높은 효율 (더 적은 단계와 연산) | 상대적으로 낮은 효율 (추가적인 단계와 연산 포함) |