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

JavaScript에서 두 날짜 사이의 초 차이를 구하는 방법

JavaScript에서 두 날짜 사이의 초(second) 수를 구하려면 Math.abs() 메서드를 활용하면 됩니다.

두 Date 객체를 서로 빼면 밀리초(ms) 단위의 시간 차이가 계산되는데, 여기에 Math.abs()를 적용해 절댓값을 만들고 1000으로 나누면 초 단위 값으로 변환할 수 있습니다. 절댓값을 사용하기 때문에 어떤 날짜가 앞서든 상관없이 항상 양수인 차이 값을 얻을 수 있다는 장점이 있습니다.

예제

아래 코드를 실행하면 두 날짜 사이의 초 차이를 확인할 수 있습니다.

<html>
<head>
   <title>JavaScript Get Seconds</title>
</head>
<body>
   <script>
      var date1, date2;

      // 현재 날짜와 시간
      date1 = new Date();
      document.write("" + date1);

      // 특정 날짜와 시간 지정
      date2 = new Date("Dec 10, 2015 20:15:10");
      document.write("<br>" + date2);

      // 두 날짜 사이의 총 초(second) 계산
      var seconds = Math.abs(date1 - date2) / 1000;
      document.write("<br>Difference between 2 dates: " + seconds);
   </script>
</body>
</html>

실행 결과

Mon May 28 2018 09:35:25 GMT+0530 (India Standard Time)
Thu Dec 10 2015 20:15:10 GMT+0530 (India Standard Time)
Difference between 2 dates: 77721615.573

코드 설명

위 예제의 동작 원리는 다음과 같습니다.

  • new Date()는 현재 시점의 날짜와 시간을 담은 객체를 생성합니다.
  • new Date("Dec 10, 2015 20:15:10")처럼 문자열을 전달하면 해당 시점의 Date 객체가 만들어집니다.
  • Date 객체끼리 뺄셈(date1 - date2)을 하면 자동으로 밀리초 단위 숫자로 변환되어 차이가 계산됩니다.
  • Math.abs()로 음수가 나오지 않도록 절댓값을 취한 뒤, 1000으로 나눠 밀리초를 초로 변환합니다.

만약 소수점 없이 정수 형태의 초가 필요하다면 Math.floor()Math.round()를 함께 사용하면 됩니다. 예를 들어 Math.floor(Math.abs(date1 - date2) / 1000)과 같이 작성하면 내림 처리된 정수 초 값을 얻을 수 있습니다.