を、私はこの1つを解決することができました。
echo "Time: " . date("Y-m-d H:i:s") . "<br>\n";
$shortName = exec('date +%Z');
echo "Short timezone:" . $shortName . "<br>";
$longName = timezone_name_from_abbr($shortName);
echo "Long timezone:" . $longName . "<br>";
date_default_timezone_set($longName);
echo "Time: " . date("Y-m-d H:i:s") . "<br>\n";
は、出力を提供します:
Time: 2011-12-23 23:29:45
Short timezone:MYT
Long timezone:Asia/Kuala_Lumpur
Time: 2011-12-24 06:29:45
更新:タイムゾーンの短い名前を一意ではありません。例えば、アメリカとオーストラリアの両方で、timezone_name_from_abbrには、時には私がしたくないものを選ぶための "EST"があります。オフセットの大きさを日付で尋ねることができます。正しいタイムゾーン:
$offset = exec('date +%::z');
$off = explode (":", $offset);
$offsetSeconds = $off[0][0] . abs($off[0])*3600 + $off[1]*60 + $off[2];
$longName = @timezone_name_from_abbr($shortName, $offsetSeconds);
date_default_timezone_get()php.iniのどちらdate.timezoneでは設定されているので、私を助けにはなりません、と私はdate_default_timezone_set()はまだ行っていません。しかし、timezone-name-abbr()はリンクがありませんでした。ありがとう! – Stoffisimo