문제

PHP에서 날짜와 시간 마사지에 접근하는 방법에는 여러 가지가 있습니다. 나는 보통 현지 시간을 다루는 모든 것입니다. 오늘은 UTC에서 일해야합니다.

API에 대해 쿼리하고 있습니다. 임의의 레코드에 대한 데이터는 다음과 같습니다. 작성 : Thu, 18 월 18 일 21:44:49 +0000 * 'UTC 레코드 생성 시간'으로 문서화되었습니다.

UTC_OFFSET : -28800 * 사용자 간의 차이

데이터가 현지 시간에 제출 된 시간과 날짜를 사용자에게 보여주기 위해 간단한 문자열로 변환해야합니다.

나는 위의 것이 캘리포니아에서 번역된다. 예를 들어 : 2009 년 6 월 18 일 목요일 오후 2:44:49

내 목표는 "예쁜"형식으로 쉽게 서식 할 수 있도록 날짜 ()까지 전달할 수있는 시간 값에 도달하는 것입니다.

위의 생성 된 시간을 Epoch에서 몇 초로 변환하고 오프셋을 추가 한 다음 DET ()로 전달하는 것만 큼 간단합니까? 고스 차는 찾아야 할 것이 있습니까?

$created_time = 'Thu, 18 Jun 2009 21:44:49 +0000';
$utc_offset = -28800;
$seconds = strtotime($created_time);
$localized_time = $seconds + $utc_offset;

echo date(DATE_RFC822, $localized_time);

감사

도움이 되었습니까?

해결책

PHP는 자동으로 일을해야합니다. 대신 DateTime 객체를 사용하는 것이 좋습니다.

$ dt = new DateTime ($ create_time); echo $ dt-> 형식 (date_rfc2822);

PHP의 날짜 및 시간 기능은 시간대를 인식하고 있습니다. 이러한 시스템을 개선하는 데 많은 작업이 수행 되었기 때문에 최근 버전의 PHP에 있는지 확인하십시오.

다른 팁

당신이 사용할 수있는 date_default_timezone_set 타임 존 사이를 전환합니다. 귀하의 경우, 사용자의 프로필에서 시간대 정보를 전달합니다. Evert가 권장하는 것처럼 PHP 5> = 5.2를 사용하는 경우 더 고급을 사용하십시오. 날짜 시간 수업.

<?php
echo date('h:i:s')."\n";
date_default_timezone_set('Europe/Paris');
echo date('h:i:s')."\n";
date_Default_timezone_set('UTC');
echo date('h:i:s')."\n";
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top