1

サーバーで以下のコードを実行すると、以下の答えが得られます。

$date1='1367276400000';

$date2=date('Y-m-d',($date1/1000));

echo "Date -> ".$date2."-->"."\n";

答え: Date -> 2013-04-29-->

同じコードをローカルで実行すると、別の答えが得られます。

答え: Date -> 2013-04-30-->

ローカル サーバーの php タイムゾーンは、アジア/カルカッタです。

本番サーバーのタイムゾーンは: UTC

両方のサーバーで同じ出力を得るにはどうすればよいですか?

4

4 に答える 4

2

答え

date_default_timezone_set('UTC');スクリプトの先頭に置きます。

説明

これにより、システムのタイムゾーンの設定に関係なく、日付関数は UTC タイムゾーンで日付を表示します。

同じようにタイムゾーンをアジア/カルカッタに強制することもできますが、UTC は実稼働環境のタイムゾーンであると述べたので、UTC に固執する必要があると思います。通常、実稼働サーバー環境よりもローカル環境をより詳細に制御できます。これは、PHP スクリプトがある時点で、システム タイムゾーンを使用する運用サーバーで実行されている他のサービスと対話する必要がある場合に重要です。

于 2013-04-17T05:19:32.630 に答える
1

次のようなコードの最初にdate_default_timezone_set http://php.net/manual/en/function.date-default-timezone-set.phpを使用します

 date_default_timezone_set('Asia/Calcutta');
 $date1='1367276400000';
 $date2=date('Y-m-d',($date1/1000));
 echo "Date -> ".$date2."-->"."\n";
于 2013-04-17T05:19:24.570 に答える
0

したがって、この

date_default_timezone_set('Asia/Calcutta');
$date = date("d-m-Y");  
print 'The date is: ' . $date;
于 2013-04-17T05:19:29.360 に答える
0

あなたは使用することができますtimezones

$today = new DateTime(null, new DateTimeZone('America/Toronto'));
$today->setTimezone(new DateTimeZone('Asia/Calcutta'));
echo today->format('Y-m-d H:i:s);
于 2013-04-17T05:29:09.743 に答える