0

date()現地の時刻/日付をフォーマットし、GMT / UTCの日付/時刻をフォーマットする場合gmdate()、これはなぜ本当ですか?

date_default_timezone_set('America/Los_Angeles');
var_dump(date('U') === gmdate('U')); // true

コマンドライン:

$ php -r "date_default_timezone_set('America/Los_Angeles'); var_dump(date('U') === gmdate('U'));"
bool(true)

ローカルタイムスタンプが異なるタイムゾーンのUTCタイムスタンプと等しいのはなぜですか?

4

1 に答える 1

4

タイムスタンプはUnixエポック(1970年1月1日00:00:00 GMT)からの秒数であるためです。GMTに気づきましたか?現在のタイムゾーンに関係なく、タイムスタンプはその時間とタイムゾーンを基準にしています。

あなたが本当にやりたいことは:

$local = new DateTime();
$local->setTimeZone(new DateTimeZone('America/Los_Angeles'));
$gmt   = new DateTime();
$gmt->setTimeZone(new DateTimeZone('UTC'));
var_dump($local === $gmt);
于 2013-03-22T01:59:20.857 に答える