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

PHP strtotime() 함수 완벽 가이드 – 날짜 문자열을 타임스탬프로 변환하기

PHP의 strtotime() 함수는 영어로 작성된 날짜 또는 시간 문자열을 해석하여 Unix 타임스탬프로 변환합니다. 변환에 성공하면 해당 타임스탬프를 반환하고, 실패하면 FALSE를 반환합니다. 참고로 PHP 5.1.0 이전 버전에서는 실패 시 -1을 반환했습니다.

문법 (Syntax)

strtotime(time, now)

매개변수 (Parameters)

  • time  − 해석(parse)할 날짜 및 시간 문자열을 지정합니다.

  • now  − 반환값을 계산할 때 기준이 되는 타임스탬프입니다. 생략하면 현재 시간이 기본값으로 사용됩니다.

반환값 (Return)

strtotime() 함수는 변환에 성공하면 해당 시점의 타임스탬프를 정수형으로 반환하고, 실패하면 FALSE를 반환합니다. PHP 5.1.0 이전 버전에서는 실패 시 -1을 반환했습니다.

예제 1: 특정 날짜 변환하기

다음은 날짜 문자열을 타임스탬프로 변환한 후, date() 함수를 이용해 원하는 형식으로 출력하는 예제입니다.

<?php
   $timestamp = strtotime( "June 20, 2018" );
   print date( 'Y-m-d', $timestamp );
?>

출력 결과

2018-06-20

예제 2: 다양한 시간 표현식 활용하기

strtotime() 함수는 "now", 상대적인 시간 표현 등 다양한 형식의 문자열을 처리할 수 있습니다.

<?php
   echo(strtotime("now") . "<br>");
   echo(strtotime("10 March 2018") . "<br>");
   echo(strtotime("+10 hours") . "<br>");
?>

출력 결과

1539235161
1520640000
1539271161

함수 활용 팁

strtotime() 함수는 "next Monday", "+1 week", "last day of next month"와 같은 직관적인 영어 표현도 해석할 수 있어 날짜 계산 로직을 간결하게 작성할 수 있습니다. 다만 서버의 기본 시간대(timezone) 설정에 따라 결과가 달라질 수 있으므로, 필요에 따라 date_default_timezone_set() 함수로 시간대를 명시적으로 지정하는 것이 좋습니다.