8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【PHP】UTCタイムスタンプを強制的にJST(日本時刻)表示する方法

Last updated at Posted at 2015-09-30

APIからUnix,UTCで時刻取得する機会があったのですがどうやってもJSTに変換できなかったので成功例の記録。
(特にレンタル)サーバーの設定によらず正しい時刻を表示する方法を紹介します。

Apache2.0 PHP5.6.10で動作確認

#目標の動作
例として$utc = 1443576433を使用。
echo date('Y/m/d H:i', $utc);とすると
2015/09/30 03:27
と出力されました。これをJST変換して
2015/09/30 10:27
となることを目指します。

##注意:サーバーの問題点
PHPを触ったことある方、UTCに詳しい方ならすぐ異変に気づくはずです。
(時差が9時間でない)
調べてところApacheのTimeZoneがEurope/Berlinでした。
初期設定が変だったのでしょう。

#解決策
DateTimeクラスを使います。

success.php
<?php
$time = new DateTime();
$time->setTimestamp($utc)->setTimezone(new DateTimeZone('Asia/Tokyo'));
echo $time->format('Y/m/d H;i');

DateTimeZoneクラスで目的のタイムゾーンを作り、setTimeZoneの引数にします。

8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?