PHP Snippets

PHP Unix 타임스탬프 스니펫

Unix 초 가져오기, 밀리초 생성, 타임스탬프 포맷, DateTime 객체 간 변환, 날짜 문자열 파싱을 위한 PHP 예제.

Current Unix timestamp (seconds)
time()
Current Unix timestamp (milliseconds)
round(microtime(true) * 1000)
Formatted date from timestamp
date("Y-m-d H:i:s", 1700000000)
Date in specific timezone
date_default_timezone_set("America/New_York");
date("Y-m-d H:i:s", 1700000000);

// Or with DateTime:
$dt = new DateTime();
$dt->setTimestamp(1700000000);
$dt->setTimezone(new DateTimeZone("America/New_York"));
echo $dt->format("Y-m-d H:i:s");
Timestamp from date string
strtotime("2023-11-15 06:13:20 UTC")

PHP 타임스탬프 기본

PHP의 time()은 정수 Unix 초를 반환합니다. 초 미만 정밀도가 필요하거나 JavaScript 대상 API를 위해 Unix 밀리초를 얻고 싶을 때는 microtime(true)을 사용하세요.

PHP에서 날짜 형식화

date()는 서버 기본 시간대로 타임스탬프를 형식화하고, gmdate()는 UTC로 형식화합니다. 명시적 시간대 작업에는 DateTime과 DateTimeZone을 사용해 배포가 일관되게 동작하도록 하세요.

PHP 운영 참고 사항

PHP 애플리케이션은 기본 시간대가 다른 공유 호스팅, 컨테이너, 워커에서 실행되는 경우가 많습니다. 서버 기본값은 구현 세부사항으로 취급하세요. 영속 데이터에는 Unix 초나 UTC DateTime 값을 저장하고, 사용자·보고서·통합을 위해 타임스탬프를 형식화하는 지점에서 DateTimeZone을 선택하세요.

  • 컨트롤러, 작업, 간단한 스크립트의 정수 Unix 초에는 time()을 사용
  • 초의 소수나 밀리초 정밀도가 필요하면 microtime(true)을 사용
  • 서버 시간대를 무시하는 안정적인 UTC 형식화에는 gmdate()를 사용
  • 날짜를 실수로 변경하면 안 되는 코드에는 DateTimeImmutable을 사용

FAQ

time()은 밀리초를 포함하나?
아니요. time()은 정수 Unix 초를 반환합니다. 초의 소수 부분이 필요하거나 밀리초 타임스탬프를 계산해야 하면 microtime(true)를 사용하세요.
왜 date() 대신 gmdate()를 쓰나?
gmdate()는 타임스탬프를 UTC로 형식화합니다. date()는 서버에 설정된 시간대를 사용하는데, 이는 로컬 개발, 컨테이너, 프로덕션 호스팅 간에 바뀔 수 있습니다.
PHP 변환을 확인하려면?
같은 값을 gmdate('c', $timestamp)로 변환한 뒤, 마이그레이션에 사용하기 전에 독립적인 epoch 변환기나 데이터베이스 UTC 함수와 비교하세요.