web-dev-qa-db-ja.com

24時間形式の日付と時刻

この形式の日付がありますFri, 15 Jan 2016 15:14:10 +0800、このように時間を表示したい2016-01-15 15:14:10

私が試したのは:

$test = 'Fri, 15 Jan 2016 15:14:10 +0800';
$t = date('Y-m-d G:i:s',strtotime($test));
echo $t;

ただし、次の形式で日付を表示しています:2016-01-15 7:14:10、 そのはず 2016-01-15 15:14:10

これどうやってするの?

8
Pathik Vejani

代わりに H を使用します。

_$test = 'Fri, 15 Jan 2016 15:14:10 +0800';
$t = date('Y-m-d H:i:s',strtotime($test));
echo $t;
_

[〜#〜] h [〜#〜]:24時間形式の先行ゼロ00〜23

Gは同じである必要がありますが、先行ゼロはありません。あなたのPHPは_+0800_とは異なるタイムゾーンに設定されています。タイムゾーン(date_default_timezone_get())を確認できますか?

編集

OPは、彼のタイムゾーンがUTCに設定されていることを確認しました。この場合、dateはPHPのデフォルトのタイムゾーンを使用するため、午前7を表示するという完全な意味を覆い隠します。

タイムゾーンを「継承」したい場合、柔軟性を高めながら、 DateTime に切り替える必要があります。

_echo (new DateTime($test))->format("Y-m-d H:i:s");
_
22
Dencker