2016-12-03 11 views
0

不正な時刻を返すDateTimeオブジェクトとdate()メソッド。DateTimeオブジェクトが正しいタイムゾーンを返していません

php.ini getterメソッドですでに設定されているphp timezoneがタイムゾーンの設定を確認しています。しかし

PHPバージョンの後ろに4時間5.4.16

if (date_default_timezone_get()) { 
    echo 'date_default_timezone_set: '. date_default_timezone_get() .'<br />'; 
} 

if (ini_get('date.timezone')) { 
    echo 'date.timezone: ' . ini_get('date.timezone') . "<br>"; 
} 

$d = new DateTime(); 
echo $d->format("Y-m-d H:i:s") . "<br>"; 
$d->setTimezone(new DateTimeZone('Europe/Istanbul')); 
echo $d->format("Y-m-d H:i:s"); 

結果を示す生成された時間:

date_default_timezone_set: Europe/Istanbul 
date.timezone: Europe/Istanbul 
2016-12-03 10:44:15 
2016-12-03 10:44:15 

それは2016年12月3日午後2時44分15秒

+0

date_default_timezone_set(ヨーロッパ/イスタンブール);これを使って。 –

+0

'$ d-> setTimezone(new DateTimeZone( 'UTC'))の出力を表示します。 echo $ d-> format( "Y-m-d H:i:s"); ' –

+0

システム日時を確認しましたか?シェルでdateコマンドを実行しますか? – TurtleTread

答えて

0

使用する必要がありますこの簡単なコード

エコー日付( "dMY");

date_default_timezone_set( 'Asia/calcutta');

エコー日付( "h:i:sa");

+0

date_default_timezone_get()はすでに正しい値を返しています。問題は作成された日付がタイムゾーンと一致しないことです。ヨーロッパ/イスタンブールと同じように戻るアジア/カルカッタタイムゾーン – levye

関連する問題