Edit: эта функция работает в PHP, она не работает для меня в рамках CakePHP, что я не считаю уместным при первоначальной публикации.
Эта функция принимает форматированную строку даты / времени и местный часовой пояс (например, «America / New_York»). Предполагается, что время в обратном направлении конвертируется в местный часовой пояс. В настоящее время оно не меняется.
Я передаю это: '2011-01-16 04:57:00', 'America / New_York' и возвращаюсь в тот же момент, когда я прохожу.
function getLocalfromGMT($datetime_gmt, $local_timezone){
$ts_gmt = strtotime($datetime_gmt.' GMT');
$tz = getenv('TZ');
// next two lines seem to do no conversion
putenv("TZ=$local_timezone");
$ret = date('Y-m-j H:i:s',$ts_gmt);
putenv("TZ=$tz");
return $ret;
}
Я видел ссылки на новые методы для default_timezone_get / set. В настоящее время я не заинтересован в использовании этого метода, потому что я хотел бы, чтобы этот код работал с более старыми версиями PHP.