strtotime を使用してロープのような XML からタイムスタンプを作成していますが、タイムゾーンが正しくありません。
時間から 5 時間を削除するにはどうすればよいですか?
タイムゾーンがわかっている場合は、次のように設定できますdate_default_timezone_set()
それが設定されている場合、ご存知のように strtotime() でこれを行うことができます。
strtotime("-5 hours", $time);
おそらく次のようなものが必要です。
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のソリューションで私が見ることができる唯一の問題ですが、これまたはそのいずれかが機能します。