0

これは単純でなければならないので、私は気が狂ってしまうと思います。

現在、私のコンピューターの時刻は 14:41 です。以下のコードを実行すると、13:41 が返されます。

$date = new DateTime();
$date->format('Y-m-d H:i:s') //13:41
date('Y-m-d H:i:s') //13:41

date_default_timezone_get()UTC を返します。

1 時間遅れている理由はわかりましたが (夏時間であるため)、これらすべてを考慮して実際の時間を返す関数はありませんか?

psここで明らかなことを見落としていると思います。

編集: date('Y-m-d H:i:s -- I -- e');戻ります2013-09-13 14:15:47 -- 0 -- UTCIパラメータは1を返すべきではありませんか?

4

1 に答える 1

1

php.ini の設定に依存しないでください。タイムゾーンを制御したい場合は、タイムゾーンを制御します。

<?php

$date = new DateTime();
$date->setTimezone(new DateTimeZone('Europe/London'));
$date->format('Y-m-d H:i:s e')

「ヨーロッパ/ロンドン」を「実際の時間」の定義に置き換えてください。

余談ですdate_default_timezone_get()が、UTC を返す場合、 の出力は$date->format()正しいクロックを持つすべてのマシンで同じです。それがUTCのポイントです。

于 2013-09-13T16:20:53.393 に答える