3

タイムゾーンは、次の方法 (およびその他の方法) で変更できることを知っています。

  1. putenv()すべてのphpファイルにタイムゾーンを設定します。
  2. date.timezonephp.ini でタイムゾーンを設定します。
  3. php_value date.timezoneルート .htaccess ファイルのタイム ゾーンで設定します。

私の質問は、タイムゾーンの設定は機能にのみ影響するのでしょうかdate()、それとも機能にも影響しtime()ますか?

ドキュメントを読みましたが、まだ少し混乱しています.答えは前者だと思いますが、確認する必要があるので、誰かがこれを確認できるとうれしいです.

ありがとう!

4

4 に答える 4

5

time() はタイムゾーンの影響を受けません。日付などの関数は、タイムスタンプに影響を与えることなく、結果の日付をタイムゾーンに変換します。

<?php
var_dump(date_default_timezone_get());

$time1 = time();
var_dump($time1);
var_dump(date("r", $time1));

date_default_timezone_set("America/Los_Angeles");
var_dump(date_default_timezone_get());

$time2 = time();
var_dump($time2);
var_dump(date("r", $time1));

var_dump($time1 === $time2);

出力:

string(16) "Europe/Amsterdam"
int(1571676424)
string(31) "Mon, 21 Oct 2019 18:47:04 +0200"
string(19) "America/Los_Angeles"
int(1571676424)
string(31) "Mon, 21 Oct 2019 09:47:04 -0700"
bool(true)

デモ: https://3v4l.org/Cggc3

于 2012-12-04T18:55:48.463 に答える
3

次の例を試してください。

date_default_timezone_set("Europe/Paris");
echo gmdate("H:i:s");
echo "<br/>";
echo date("H:i:s");
echo "<br/>";
echo time();

echo "<br/>";
echo "<br/>";

date_default_timezone_set("Asia/Chungking");
echo gmdate("H:i:s");
echo "<br/>";
echo date("H:i:s");
echo "<br/>";
echo time();

echo "<br/>";
echo "<br/>";

ディスプレイ:

18:52:38
19:52:38
1354647158

18:52:38
02:52:38
1354647159
于 2012-12-04T18:55:27.357 に答える
3

Unix エポック (1970 年 1 月 1 日 00:00:00 GMT) からの秒数で測定された現在の時刻を返します。

これは絶対的な時点であるため、それ以降の経過秒数は (相対論的な目的を除いて) 明確です。タイムゾーンの設定に関係なく、同じ値が得られます。

于 2012-12-04T18:57:22.267 に答える
2

php time() GMTを使用して時間を計算するため、タイムゾーンの設定に依存しません

于 2012-12-04T18:55:14.550 に答える