27925


htmlにphpを埋め込む形で使用しているのですが、

[code]

    <?php
    $time = new DateTime();
    echo $time->format('H:i:s');
    ?>
    
[/code]

このように現在時刻を表示させると、実際の日本時間より9時間遅れてしまいます。  
標準時が表示されてしまっているのかと思い、php.iniのタイムゾーン設定も確認しましたが、もともとAsia/Tokyoになっていました。  
また、DateTimeのコンストラクタの第二引数に new DateTimeZone('Asia/Tokyo') を指定しても結果は変わりません。  
ではタイムゾーンにUTCを設定してみたらどうなるのか試してみたら、もともと遅れていた9時間に時差が合わさったようで、18時間も遅れてしまいました。

どうすれば正しい日本時間を表示できるのでしょうか？分かる方いらっしゃればどうかよろしくお願いします。


CC BY-SA 3.0
2016-07-28T05:52:39.987
27906
2016-07-28T15:46:27.033
14094
question
php
phpで時間が9時間ずれます


お二人のコメントのおかげで解決しましたので報告いたします。

コメント頂いた通り、phpの問題ではなくOSの問題でした。(centOSを使ってます)  
`hwclock --show
--debug`というコマンドを打ってみると、ハードウェアクロックにはUTC時間が入っているのにローカルの時間が入っていると見なされていたことがわかりました。なので、etc/adjtimeの`LOCAL`を`UTC`に書き直し、`hwclock
--hctosys`でシステムクロックを同期してみたら直りました。

これが正しい解決方法なのかはわかりませんが、一応phpからでもちゃんと日本時間が表示されるようになりました。ありがとうございます。


CC BY-SA 3.0
2016-07-28T15:46:27.033
27925
2016-07-28T15:46:27.033
14094
27906
answer