2017-03-17 3 views
0

私はUTCゾーンに時間を節約するプロジェクトに取り組んでいます。私はAsia/Kolkataゾーンの時間をフロントエンドに表示したい。PHPで日付と時刻をUTCからISTに、またはその逆に変換する

$createdAt = '2017-03-16 23:21:56'; 

/* The indian time was 2017-03-17 11:52 when the record was placed, so after converting it to Asia/Kolkata it should display 2017-03-17 11:52 (seconds does not matter) */ 

私のPHPコードは、アジア/コルカタ

$createdAt = '2017-03-16 23:21:56'; 
$dateFrom = new DateTime($createdAt, new DateTimeZone('America/Chicago')); 
$dateFrom->setTimezone(new DateTimeZone('Asia/Kolkata')); 
$IST = $dateFrom->format('Y-m-d H:i:s'); 

出力は2017-03-17 09:51:56代わりの2017-03-17 11:52:56あるに変換します。出力は実際の時間の2時間前に表示されます。私はそれを理解することはできません。

あなたの提案は私を大きく助けます。

答えて

1

入力日時がChicago time zoneの場合は、DSTを考慮する必要があります。この変更は現地時間の3月12日に発生したため、入力内容($createdAtが正しいと仮定します)はすでにDST体制(つまり、UTC-05:00)になっています。

カルカッタはUTC + 05:30であり(DST調整はありません)、特定の入力に対する合計の差は、2017-03-17 09:51:56の出力を正当化する10:30です。

+0

分かりましたので、時間帯を別のタイムゾーンに正確に変換する方法はありません。 返信ありがとうございました –

+0

@サンタヌズビスワスので、あなたはそれを一番近い分に丸めたり秒を止めたりしたいですか? – ewcz

関連する問題