Преобразование между часовыми поясами в PHP

Я конвертирую это время и дату:

Thu, 31 Mar 2011 02:05:59 GMT 

К следующему формату времени и даты:

 Monday March 28 2011 4:48:02 PM 

Для этого я использую следующий PHP-код, но я хочу преобразовать все временные зоны в PST / PDT. Я просмотрел руководство по PHP и увидел этот date_default_timezone_set() но я не уверен, как реализовать это в коде, который у меня ниже.

 $date = $messages[0]->CreationTime; echo date('l F j Y g:i:s A I', strtotime($date)) 

Я бы не использовал date_default_timezone_set для общих преобразований TZ. (Чтобы уточнить … если это предназначено для показа, широко используется сценарий, а затем использовать часовой пояс по умолчанию – это разумная вещь).

Вместо этого я бы использовал что-то вроде:

 $tz = new DateTimeZone('America/Los_Angeles'); $date = new DateTime('Thu, 31 Mar 2011 02:05:59 GMT'); $date->setTimezone($tz); echo $date->format('l F j Y g:i:s A I')."\n"; - $tz = new DateTimeZone('America/Los_Angeles'); $date = new DateTime('Thu, 31 Mar 2011 02:05:59 GMT'); $date->setTimezone($tz); echo $date->format('l F j Y g:i:s A I')."\n"; 
 $date = $messages[0]->CreationTime; date_default_timezone_set('America/Los_Angeles'); echo date('l F j Y g:i:s A I', strtotime($date)); 

См. Этот список для доступных часовых поясов, которые передаются в функцию