質問

PHPで日付と時刻のマッサージにアプローチする方法はたくさんあるようです。私は通常、現地時間を扱うすべての人です。今日、UTCで作業する必要があります。

APIに対してクエリを実行していますが、任意のレコードについて提供されるデータは次のとおりです。 作成:木、2009年6月18日21:44:49 +0000 *「UTCレコード作成時間」として文書化

utc_offset:-28800 *ユーザー間の違い

それを単純な文字列に変換して、現地時間でデータが送信された日時をユーザーに示す必要があります。

たとえば、カリフォルニア州の場合、上記は次のように変換されます。 2009年6月18日木曜日午後2時44分49秒

私の目標は、date()に渡すことができる時間値を取得して、「きれいな」形式で簡単にフォーマットできるようにすることです。形式。

上記の作成された時間をエポックから秒に変換し、オフセットを追加し、それをdate()に渡すのと同じくらい簡単ですか?気を付けるべきゴチャはありますか?

$created_time = 'Thu, 18 Jun 2009 21:44:49 +0000';
$utc_offset = -28800;
$seconds = strtotime($created_time);
$localized_time = $seconds + $utc_offset;

echo date(DATE_RFC822, $localized_time);

ありがとう

役に立ちましたか?

解決

PHPは自動的に処理を行います。代わりにDateTimeオブジェクトを使用することを強くお勧めします。

$ dt = new DateTime($ created_time);   echo $ dt-> format(DATE_RFC2822);

PHPの日付と時刻の関数はタイムゾーンに対応しています。PHPの最新バージョンを使用していることを確認してください。これらのシステムの改善に多くの作業が行われているためです。

他のヒント

date_default_timezone_set を使用して、タイムゾーンを切り替えることができます。あなたの場合、ユーザーのプロファイルからタイムゾーン情報を渡します。 Evertが推奨するように、PHP 5> = 5.2を使用している場合は、より高度な DateTimeを使用してくださいクラス。

<?php
echo date('h:i:s')."\n";
date_default_timezone_set('Europe/Paris');
echo date('h:i:s')."\n";
date_Default_timezone_set('UTC');
echo date('h:i:s')."\n";
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top