PHP按时区搜索当地时间

时间:2012-03-31 07:09:19

标签: php

例如,我的时区是:“欧洲/伦敦”或“America / Los_Angeles”

在Perl中,我可以通过以下方式查找本地时间:

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";

但是我不知道如何用PHP查找当地时间,有人帮忙吗?

1 个答案:

答案 0 :(得分:3)

您可以在PHP中执行此操作:

$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.";

如果您没有PHP 5.2,请参阅date_default_timezone_set()或使用ini_set('date.timezone', $timezone);,然后PHP将像在该时区一样运行。您输出的任何日期都将是给定时区的日期。

PHP Date/Time Functions也有很好的参考。还有其他方法可以在PHP中执行此操作,但上述操作很简单,大多数服务器应该具有PHP 5.2或更高版本。

有关可以传递给DateTime::format的格式列表,请参阅date()以及DateTime以获取有关{{1}}可以执行的其他操作的参考资料。