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

PHP에서 날짜·시간을 초로 변환하는 방법: MySQL TIME_TO_SEC() 함수의 대안

MySQL에는 TIME_TO_SEC()라는 내장 함수가 있어 시간 값을 초 단위로 손쉽게 변환할 수 있습니다. 반면 PHP에서 동일한 작업을 수행하려면 strtotime() 함수를 사용하는 것이 가장 일반적입니다.

MySQL에서 TIME_TO_SEC() 사용하기

MySQL에서 날짜·시간 값을 초로 변환하는 기본 문법은 다음과 같습니다.

SELECT TIME_TO_SEC(ABS(timediff('yourDateTimeValue', now())));

이 쿼리는 지정한 날짜·시간 값과 현재 시각(now())의 차이를 절댓값으로 구한 뒤, 초 단위로 반환합니다.

PHP에서 strtotime()으로 초 단위 변환하기

PHP에서는 strtotime() 함수가 날짜 문자열을 유닉스 타임스탬프, 즉 1970년 1월 1일 00:00:00 UTC부터 경과한 초 단위 정수로 변환해 줍니다. 이것이 바로 MySQL의 TIME_TO_SEC()에 해당하는 역할을 수행합니다.

사전 준비: XAMPP 서버 설치

PHP 프로그램을 실행하려면 먼저 XAMPP 서버를 설치해야 합니다. XAMPP를 C 드라이브에 성공적으로 설치했다면, 작성한 PHP 파일은 XAMPP/htdocs 디렉터리 안에 저장해야 합니다.

PHP에서 날짜·시간을 초로 변환하는 방법: MySQL TIME_TO_SEC() 함수의 대안

참고: 이 예제에서는 기본 포트(80)가 다른 프로그램에 의해 이미 사용 중이었기 때문에 Apache 포트를 8086으로 변경했습니다. 포트를 변경해야 PHP 프로그램을 정상적으로 실행할 수 있습니다.

만약 시스템에서 기본 포트가 정상적으로 작동한다면 그대로 사용하면 되고, 그렇지 않다면 변경한 포트 번호를 주소창에 입력하면 됩니다. URL 형식은 다음과 같습니다.

https://localhost:yourPortNumber/locationofphpfile/

여기서는 포트 번호가 8086이고, 'locationofphpfile'에 해당하는 폴더 이름은 'phpproject'입니다.

DifferenceInSeconds.php 코드 작성

에디터를 열고 아래 코드를 작성하여 날짜·시간을 초로 변환해 보겠습니다. 파일은 반드시 .php 확장자로 저장해야 하며, 여기서는 'DifferenceInSeconds.php'라는 이름으로 저장했습니다.

<?php
$MySQLDateTime = '2019-01-29 13:50:40';
echo "<h1>The strtotime value is:" . "</h1>" . strtotime($MySQLDateTime) . "<br>";
echo "<h1>The time value is:" . "</h1>" . time() . "<br>";
$differenceInSeconds = strtotime($MySQLDateTime) - time();
echo "<h1>The difference of both time in seconds is:" . "</h1>" . $differenceInSeconds;
?>

PHP에서 날짜·시간을 초로 변환하는 방법: MySQL TIME_TO_SEC() 함수의 대안

코드의 동작 원리를 간단히 살펴보면 다음과 같습니다.

  • strtotime($MySQLDateTime): 지정한 날짜 문자열('2019-01-29 13:50:40')을 초 단위 타임스탬프로 변환합니다.
  • time(): 현재 시각의 타임스탬프(초)를 반환합니다.
  • 두 값의 차이: 특정 날짜와 현재 시각 사이의 경과 시간을 초 단위로 계산합니다.

브라우저에서 실행하기

이제 아무 브라우저나 열고 주소창에 URL을 입력합니다. 제 시스템의 포트 번호는 8086이므로, XAMPP 서버 설정에서 본인의 포트 번호를 먼저 확인하세요. 'phpproject'는 XAMPP/htdocs/ 안에 PHP 파일을 저장해 둔 폴더입니다.

https://localhost:8086/phpproject/

Enter 키를 누르면 프로그램이 저장된 페이지가 나타납니다.

PHP에서 날짜·시간을 초로 변환하는 방법: MySQL TIME_TO_SEC() 함수의 대안

목록에서 'DifferenceInSeconds.php' 파일을 클릭하면 다음과 같은 출력 결과를 확인할 수 있습니다.

PHP에서 날짜·시간을 초로 변환하는 방법: MySQL TIME_TO_SEC() 함수의 대안

정리

MySQL의 TIME_TO_SEC() 함수가 하는 일을 PHP에서 구현하려면 strtotime() 함수를 사용하면 됩니다. strtotime()은 날짜 문자열을 초 단위 타임스탬프로 변환하며, time() 함수와 함께 사용하면 두 시점 사이의 차이를 초 단위로 손쉽게 계산할 수 있습니다.