2012-03-31 12 views
1

Beispiel finden, ich habe die Zeitzone ist: „Europa/London“ oder „Amerika/Los_Angeles“PHP Ortszeit von Zeitzone

In Perl kann ich für Lokale Zeit sehen von:

use DateTime; 
use DateTime::TimeZone; 

$timeZoneName = "MY TIME ZONE HERE"; 
$timeZone  = DateTime::TimeZone->new(name => $timeZoneName); 
$timeNow  = time(); 
$dateTime  = DateTime->from_epoch(epoch => $timeNow); 
$offset  = $timeZone->offset_for_datetime($dateTime); 
$localTime = $timeNow + $offset; 
print "$localTime"; 

Aber ich weiß nicht, wie man lokale Zeit mit PHP sucht, jemand hilft?

+0

In Perl kann man einfach tun: 'DateTime-> now (time_zone => $ timeZoneName)' oder sogar 'DateTime-> now (time_zone => 'local')' – ikegami

+0

Keine Ahnung, warum dies mit Perl, oder markiert ist Warum hast du einen kryptischen Code benutzt, den ein PHP-Programmierer vielleicht nicht lesen kann, anstatt zu sagen, was du willst? – ikegami

+0

Sie brauchen also Serverzeit? – Vytautas

Antwort

3

Sie können dies in PHP tun:

$timezone = 'Europe/London'; //perl: $timeZoneName = "MY TIME ZONE HERE"; 

$date = new DateTime('now', new DateTimeZone($timezone)); 

$localtime = $date->format('h:i:s a'); 

echo "Local time is $localtime."; 

Wenn Sie 5.2 nicht über PHP, siehe auch date_default_timezone_set() oder ini_set('date.timezone', $timezone); verwenden und dann wird PHP arbeiten, als ob es in dieser Zeitzone war. Jedes Datum, das Sie ausgeben, entspricht dem der angegebenen Zeitzone.

PHP Date/Time Functions haben auch gute Referenzen. Es gibt andere Möglichkeiten, wie Sie dies in PHP tun können, aber das obige ist einfach und die meisten Server sollten PHP 5.2 oder höher haben.

Siehe date() für eine Liste der Formate, die Sie zu DateTime::format und auch die DateTime Class für Verweise auf andere Dinge passieren können Sie mit DateTime tun können.