DateTime 객체에서 다른 TimeZones에서 시간을 가져 오는 데 관심이 있습니다. 로서이 꽤 잘 DateTime 개체는 문자열에서 생성 될 때 작동은 DateTime::setTimezone 문서 설명 :PHP DateTime 객체 - 타임 스탬프 및 시간대 충돌
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date->format('Y-m-d H:i:sP') . "\n";
$date->setTimezone(new DateTimeZone('UTC'));
echo $date->format('Y-m-d H:i:sP') . "\n";
echo $date->getTimestamp() . "\n";
상기 예제 출력 :
2000-01-01 00 : 00 : 00 + 12 : 00
2000-01-01 01 : 45 : 00 + 13 : 45
1999년 12월 31일 12 : 00 : 00 + 00 : 00
946,641,600
지금은 흥미로운 부분은 우리가 선택하는 경우 우리의 타임 스탬프를 올리고 수동 지침에 따라 DateTime 객체를 시작하십시오.
$date2 = new DateTime('@946641600');
$date2->setTimezone(new DateTimeZone('Pacific/Nauru'));
echo $date2->format('Y-m-d H:i:sP') . "\n";
$date2->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date2->format('Y-m-d H:i:sP') . "\n";
$date2->setTimezone(new DateTimeZone('UTC'));
echo $date2->format('Y-m-d H:i:sP') . "\n";
echo $date2->getTimestamp() . "\n";
그리고 여기에 우리가 얻을 : // [편집] HUMM ... 죄송합니다,이 출력이 잘못 ...
1999년 12월 31일 12 : 00 : 00 + 00 : 00
1999- 12-31 12 : 00 : 00 + 00 : 00
1999년 12월 31일 12 : 00 : 00 + 00 : 00
946,641,600
UTC 영원히! 우리는 더 이상 시간대를 변경할 수 없습니다!
PHP입니까? 아니면 저입니까? 버전 5.3.15
타임 스탬프로 인스턴스화 할 때 시간대를 지정하지 않습니까? –
다른 결과를 얻고 있습니다 http://codepad.viper-7.com/zAv8dz – Baba
버전 5.3.15에서 잘 작동합니다 ....... – Baba