Согласно PHP, часовой пояс в формате Etc/GMT+(offset)
является действительным часовым поясом .Исходя из этого, я бы предположил, что этот код выведет серию различных временных часов:
$start_date = 'Dec 16, 2011';
$start_time = '09:45:00';
#$utime_zone = 'GMT'; <-- switching to GMT works!
$utime_zone = 'Etc/GMT';
for($i = -12; $i <= 12; $i++){
$curr = ($i >= 0)?'+'.$i: $i;
$str = ($start_date . " " . $start_time . " " . $utime_zone.$curr);
echo $str . ' = ' . strtotime($str).PHP_EOL;
}
К сожалению, все вызовы strtotime полностью игнорируют часовой пояс.Dec 16, 2011 09:45:00 Etc/GMT-12 = 1324028700
Dec 16, 2011 09:45:00 Etc/GMT-11 = 1324028700
Dec 16, 2011 09:45:00 Etc/GMT-10 = 1324028700
...you get the idea.
Очевидно, я сделал некоторые предположения по этому поводу, но есть ли простой способ конвертировать из Etc/GMT+(offset)
в метку времени по Гринвичу?