DateTimeオブジェクトから、私は異なるTimeZonesで時間を取得することに興味があります。 としては、DateTimeオブジェクトを文字列から作成されたときに、これはかなりうまく機能し、DateTime::setTimezone DOCで説明:PHP DateTimeオブジェクト - タイムスタンプとタイムゾーンの競合
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date->format('Y-m-d H:i:sP') . "\n";
$date->setTimezone(new DateTimeZone('UTC'));
echo $date->format('Y-m-d H:i:sP') . "\n";
echo $date->getTimestamp() . "\n";
上記の例は、あろう出力:
2000-01-01 00:00:00 + 12: 00
2000-01-01 01:45:00 + 13:45
1999-12-31 12:00:00 + 00:00
今興味深い部分です:我々は選択した場合私たちのタイムスタンプをアップし、手動の指示に従ってDateTimeオブジェクトを開始してください。
$date2 = new DateTime('@946641600');
$date2->setTimezone(new DateTimeZone('Pacific/Nauru'));
echo $date2->format('Y-m-d H:i:sP') . "\n";
$date2->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date2->format('Y-m-d H:i:sP') . "\n";
$date2->setTimezone(new DateTimeZone('UTC'));
echo $date2->format('Y-m-d H:i:sP') . "\n";
echo $date2->getTimestamp() . "\n";
そしてここで我々が得る:// [編集]ヒュム...申し訳ありませんが、この出力は間違っている...
1999-12-31 12:00:00 + 00:00
1999- 12-31 12:00:00 + 00:00
1999-12-31 12:00:00 + 00:00
UTC永遠に!もうタイムゾーンを変更することはできません!
PHPかそれとも私ですか?バージョン5.3.15
タイムスタンプでインスタンス化する際にタイムゾーンを指定する予定はありませんか? –
ここに別の結果が出ていますhttp://codepad.viper-7.com/zAv8dz – Baba
バージョン5.3.15で正常に動作します....... – Baba