Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트 Date.valueOf() 함수 – 날짜의 원시 값(밀리초) 구하기

Date 객체는 자바스크립트(JavaScript) 언어에 기본으로 내장된 데이터 타입입니다. Date 객체는 아래와 같이 new Date() 생성자를 사용하여 생성할 수 있습니다.

Date 객체가 한 번 생성되면 다양한 메서드를 통해 이를 조작할 수 있습니다. 대부분의 메서드는 현지 시간(local time) 또는 UTC(협정 세계시, GMT) 기준으로 객체의 연도, 월, 일, 시, 분, 초, 밀리초 필드를 가져오거나 설정하는 역할을 합니다.

그중 valueOf() 함수는 Date 객체의 원시 값(primitive value)을 반환합니다. 여기서 원시 값이란 1970년 1월 1일 00:00:00 UTC부터 해당 시각까지 경과된 시간을 밀리초(ms) 단위의 숫자로 나타낸 것입니다.

문법(Syntax)

valueOf() 함수의 문법은 다음과 같습니다.

dateObj.valueOf()

이 함수는 매개변수를 받지 않으며, 항상 숫자(number) 타입의 값을 반환합니다.

예제 1: 특정 날짜의 밀리초 값 구하기

아래 예제는 1989년 9월 26일 12시 4분 25초 96밀리초에 해당하는 Date 객체의 원시 값을 출력합니다.

<html>
<head>
   <title>JavaScript Example</title>
</head>
<body>
   <script type="text/javascript">
      var dateObj = new Date('September 26, 89 12:4:25:96');
      document.write("Current Time: "+dateObj.valueOf());
   </script>
</body>
</html>

출력 결과

Current Time: 622794865096

예제 2: 인수 없이 Date 객체를 생성하는 경우

Date 생성자에 아무런 인수도 전달하지 않으면, 현재 시각을 기준으로 객체가 생성됩니다. 이때 valueOf()를 호출하면 1970년 1월 1일 00:00:00 UTC부터 지금 이 순간까지 경과한 밀리초가 반환됩니다. 실행 시점에 따라 출력 값은 매번 달라집니다.

<html>
<head>
   <title>JavaScript Example</title>
</head>
<body>
   <script type="text/javascript">
      var dateObj = new Date();
      document.write("Current Time: "+dateObj.valueOf());
   </script>
</body>
</html>

출력 결과

Current Time: 1718245200000  // 실행 시점에 따라 달라짐

예제 3: 유효하지 않은 날짜인 경우(NaN)

한 달은 최대 31일까지 존재하므로, 일(day) 값은 반드시 1부터 31 사이여야 합니다. 이 범위를 벗어나는 날짜를 전달하면 유효하지 않은 날짜로 간주되어 NaN(Not a Number)이 반환됩니다.

<html>
<head>
   <title>JavaScript Example</title>
</head>
<body>
   <script type="text/javascript">
      var dateObj = new Date('September 38, 1989');
      document.write("Current Time: "+dateObj.valueOf());
   </script>
</body>
</html>

출력 결과

Current Time: NaN

정리

  • valueOf()는 Date 객체의 원시 값, 즉 1970년 1월 1일 00:00:00 UTC 기준 경과 밀리초를 숫자로 반환합니다.
  • getTime() 메서드와 동일한 값을 반환하며, 두 메서드는 서로 호환됩니다.
  • 날짜 문자열이 유효하지 않으면 NaN을 반환하므로, 연산 전에 isNaN() 등으로 유효성 검사를 하는 것이 좋습니다.