2

strtotime を使用してロープのような XML からタイムスタンプを作成していますが、タイムゾーンが正しくありません。

時間から 5 時間を削除するにはどうすればよいですか?

4

2 に答える 2

9

タイムゾーンがわかっている場合は、次のように設定できますdate_default_timezone_set()

それが設定されている場合、ご存知のように strtotime() でこれを行うことができます。

strtotime("-5 hours", $time);
于 2009-04-20T09:58:34.257 に答える
3

おそらく次のようなものが必要です。

date('Y-m-d H:i:s', time() - 18000);

これは、エポックからの現在の時刻 (18000 秒 (5 時間)) に対して、文字列を日付と時刻としてフォーマットします。差し引く数値を調整して、調整する時間数を調整できます。18000 を (60*60*5) と書くとより明確になるかもしれません。

strtotime() は、順序が US とは異なる文字列で予期しない結果をもたらす可能性があります。ヨーロッパ表記 (2009 年 1 月 2 日) は、2 月 1 日を意味するところを 1 月 2 日と読みます。これは、それがしっかりしていることを除いて、olafurのソリューションで私が見ることができる唯一の問題ですが、これまたはそのいずれかが機能します。

于 2009-04-20T10:03:35.447 に答える