次のコードを想定します。
<?php
date_default_timezone_set('UTC');
$time = gmmktime(14, 50, 0, 5, 12, 2013);
echo date('Y-m-d H:i:s O', $time).'<br />';
echo gmdate('Y-m-d H:i:s O', $time).'<br />';
date_default_timezone_set('GMT');
$time = gmmktime(14, 50, 0, 5, 12, 2013);
echo date('Y-m-d H:i:s O', $time).'<br />';
echo gmdate('Y-m-d H:i:s O', $time);
?>
私のローカルサーバーでは、次の出力が得られます。
2013-05-12 14:50:00 +0000
2013-05-12 14:50:00 +0000
2013-05-12 14:50:00 +0000
2013-05-12 14:50:00 +0000
しかし、本番環境では、同じコードで次が生成されます。
2013-05-12 10:50:00 -0400
2013-05-12 14:50:00 +0000
2013-05-12 14:50:00 +0000
2013-05-12 14:50:00 +0000
マシンの時間を変更しても、出力にはまったく影響しません。
いくつかの情報:
$ date +%Z
GMT
$ date +%z
+0000
- PHP 5.3.25 (cli) (ビルド: 2013 年 5 月 11 日 09:54:00)
- CentOS リリース 5.9 (最終版)