Преобразование даты Etc / GMT в местное в PHP - PullRequest
1 голос
/ 19 августа 2011

Как мне преобразовать «2011-08-19 07:44:26 Etc / GMT» в местное время?

Ответы [ 4 ]

1 голос
/ 19 августа 2011

Использование DateTime :: createFromFormat :

$d = DateTime::createFromFormat("Y-m-d H:i:s T", "2011-08-19 07:44:26 Etc/GMT");
echo $d->format("r"), "\n";
$d->setTimezone(new DateTimeZone("EST"));
echo $d->format("r"), "\n";

выведет

Fri, 19 Aug 2011 07:44:26 +0000
Fri, 19 Aug 2011 03:44:26 -0400

На эту тему есть отличная книга: php | architect'sРуководство по программированию даты и времени .Программирование с датой и временем - довольно обширная тема.

0 голосов
/ 19 августа 2011

Вы можете использовать gmmktime для преобразования времени по Гринвичу в метку времени UNIX:

int gmmktime ([int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]])

и затем вы можете использовать дату, чтобы получить ваш локальный формат.

$timestamp = gmmktime(7,44,26,8,19,2011);
echo date("Y-m-d H:i:s",$timestamp);
0 голосов
/ 19 августа 2011
$UTC_timezone = new DateTimeZone("GMT");
$date = new DateTime("2011-08-19 07:44:26",$UTC_timezone);
echo $date->format("Y-m-d H:i:s");echo "<br/>";
$current_timezone = new DateTimeZone(date_default_timezone_get());
$date->setTimezone($current_timezone);
echo $date->format("Y-m-d H:i:s");

$timestamp = $date->getTimestamp();

Подробнее см. список часовых поясов , date_default_time_zone, DateTime::setTimezone, DateTime::getTimestamp

0 голосов
/ 19 августа 2011

strtotime преобразует строку в целочисленную метку времени, затем strftime отформатирует целочисленную метку времени как местное время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...