2012-06-30 3 views
0

У меня есть строка, которая содержит дату/время в нем, и я знаю ее в настоящее время в Австралии/Сиднее.Изменить Сидней Дата Время GMT в PHP

Теперь я должен изменить его на GMT.

Я попытался это, но его не изменяя даты:

$dateString = '2012-06-29 11:09:12'; // this is in Australia/Sydney timezone 
$gmtDate = gmdate('Y-m-d H:i:s', strtotime($dateString)); 
print_r($gmtDate); // output is 2012-06-29 11:09:12 

Как вычитать смещение как-то из ГРИНВИЧА, извините, уже немного запутались.

ответ

4

Возможно, ваш веб-сервер не настроен в часовом поясе Австралии/Сиднея? Следующий ответ поможет вам: how to convert php date formats to GMT and vice versa?

Вот что вы можете сделать:

$melbourne = new DateTimeZone('Australia/Melbourne'); 
$gmt = new DateTimeZone('GMT'); 

$date = new DateTime('2011-12-25 00:00:00', $melbourne); 
$date->setTimezone($gmt); 
echo $date->format('Y-m-d H:i:s'); 
// Output: 2011-12-24 13:00:00 
// At midnight on Christmas eve in Melbourne it will be 1pm on Christmas Eve GMT. 

echo '<br/>'; 

// Convert it back to Australia/Melbourne 
$date->setTimezone($melbourne); 
echo $date->format('Y-m-d H:i:s'); 
3

Использование ini_set() в скрипте, чтобы установить текущую временную зону, чтобы, например, часовой пояс, который используется в Лос-Анджелесе, вы могли бы сделать это:

ini_set('date.timezone', 'America/Los_Angeles'); 

Все последующие запросы функций даты и времени будет использовать Америка/Лос-Анджелес, как часовой пояс.

Если вам нужно сделать это в своих сценариях, например, если веб-сервер, который вы используете, находится в другом часовом поясе от дат и времени, которые вы хотите использовать в своих сценариях, то вы должны убедиться, что вызов сделан в в самом начале ваших сценариев (или, если можно, переместите настройку в файл .htaccess).

+0

да работала :) ТНХ – user1067698

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