2012-03-31 2 views
1

примера, я часовой пояс: «Europe/London» или «Америка/Los_Angeles»PHP найти местное время, часовой пояс

В 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, кто-нибудь поможет?

+0

В Perl можно просто выполнить: 'DateTime-> now (time_zone => $ timeZoneName)' или даже 'DateTime-> now (time_zone => 'local')' – ikegami

+0

Не знаю, почему это помечено как Perl или почему вы использовали какой-то загадочный код, который программист PHP, возможно, не сможет прочитать, вместо того, чтобы говорить то, что вы хотите. – ikegami

+0

, так что вам нужно время сервера? – Vytautas

ответ

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 или выше.

См date() для списка форматов вы можете перейти к DateTime::format, а также DateTime Class для ссылок на другие вещи, которые вы можете сделать с DateTime.

Смежные вопросы