PHP UTC по местному времени

Серверная среда

Redhat Enterprise Linux
PHP 5.3.5

Проблема

Допустим, у меня есть дата и время в формате UTC, например, 2011-04-27 02:45, и я хочу преобразовать его в мое местное время, то есть America / New_York.

Три вопроса:

1.) Мой приведенный ниже код может решить проблему, вы согласны?

<?php

date_default_timezone_set('America/New_York');  // Set timezone.

$utc_ts = strtotime("2011-04-27 02:45");  // UTC Unix timestamp.

// Timezone offset in seconds. The offset for timezones west of UTC is always negative,
// and for those east of UTC is always positive.
$offset = date("Z");

$local_ts = $utc_ts + $offset;  // Local Unix timestamp. Add because $offset is negative.

$local_time = date("Y-m-d g:i A", $local_ts);  // Local time as yyyy-mm-dd h:m am/pm.

echo $local_time;  // 2011-04-26 10:45 PM

?>

2.) Но значение $ offset автоматически настраивается на летнее время (DST)?
3.) If not, how should I tweak my code to automatically adjust for DST ?

Thank you :-)

21
задан John 27 April 2011 в 15:23
поделиться