1

任意のタイムゾーンを持つISO8601文字列があります。自分のタイムゾーンに変換したくありません。むしろ、元のタイムゾーンを保持したいと思います。gmdateが日付/時刻をフォーマットするのと同じように出力をフォーマットできるようにしたいと思います。例えば:

$output =  my_date_function( 'F d, ga', $thetime );

出力する必要があります:

$thetime = '2012-09-24T21:00:00-0700';
     => September 24, 9pm

$thetime = '2012-09-24T21:00:00-0500';
     => September 24, 9pm
4

1 に答える 1

1

それが機能するかどうかはわかりませんが、DateTime::createFromFormatで自動的に実行できると思います。タイムゾーンを決定する関数を作成し、それを使用してDateTimezoneオブジェクトを作成することもできます。 http://php.net/manual/en/datetime.createfromformat.php ドキュメントによると:

タイムゾーンが省略され、時間がタイムゾーンを含まない場合、現在のタイムゾーンが使用されます

コード:

$stime = '2012-09-24T21:00:00-0500';
$t = DateTime::createFromFormat(DateTime::ISO8601, substr($stime, 0, 19));
$output = $t->format('F d, ga');
于 2012-08-09T18:41:36.983 に答える