もともと持っていたのと同じオフセットが欲しいということだと思います。TimeZone タグ wikiで「TimeZone != Offset」を読んでください。
リクエストの主な問題は、 ( docsstrtotime
によると) UTCのエポックからの秒数を表す整数を返すことです。したがって、提供するオフセットは考慮されますが、その後は忘れられます。
申し訳ありませんが、コード サンプルを提供できるほど PHP についてよく知りませんが、おそらく元の文字列からオフセットを抽出し、最後に再適用することができます。オフセットを維持するオブジェクトを生成する文字列を解析する別の方法がある可能性もあります。繰り返しますが、私はここであなたを助けるのに十分なほど PHP を知りません。DateTimeOffset
.Net では、同じ問題はではなく に解析することで解決されますDateTime
。
また、論理的には、最初に開始したオフセットが、時間を追加した後に使用する正しいオフセットであるとは限りません。夏時間への移行を超えた可能性があります。これにより、新しい正しいオフセットが元のオフセットよりも 1 時間短くなったり、1 時間長くなったりします。懸念事項に応じて、これを気にする場合と気にしない場合があります。編集後に正しいオフセットを取得する唯一の方法は、元の値がどのタイム ゾーンにあったかを知ることです。