0

正気を失っているか、自分が何をしているのかまったくわからないかのどちらかです。私は後者に傾いています。

私はこれを変換しようとしています: 1316826000、私はかなり自信を持っています。2011 年 9 月 24 日土曜日 01:00:00 GMT

http://www.onlineconversion.com/unix_time.htmはこれを確認します。

http://www.unixtimestamp.com/index.phpは、09 / 23 / 11 @ 8:00:00pm EST を教えてくれます。これまでのところ、とても良いです。私はたまたま EST にいます。これは、PHP から取得したい結果です。

date('l, M d, Y, h:ia', $iTime) を実行すると、2011 年 9 月 23 日金曜日、午前 12:00、完全に 20 時間オフになります。

date('c') を使用して、サーバーの時刻が正しいことを確認しました。date('c') の出力は、2012-05-19T03:19:20+00:00 です。サーバーは中部時間帯にあり、現在午後 10 時 20 分です。5月18日。

echo date_default_timezone_get() は「GMT」を出力します (date_default_timezone_set('GMT') を使用してスクリプト内の別の場所に設定します)

私は何が欠けていますか?これまでに読んだものでは、本来あるべき結果から 20 時間遅れて結果が得られていることを説明できるものはありません。1 時間早かろうと遅かろうと、少なくとも DST のばかげたことであることに頭を悩ませることはできましたが、20 時間ですか? 狂気!読んでくれてありがとう!

4

2 に答える 2

1

php.ini の date.timezone の内容を確認してください。Unix では通常ここにあります:/etc/php.ini 次に、PHP によって認識される適切なタイムゾーンを使用します: http://www.php.net/manual/en/timezones.php

date.timezone = 'America/New_York'

次に、Web サーバーをリロードします。

Unix時間は、エポックからの秒数を意味します。タイムゾーンとは関係ありません。タイムゾーンは、GMT から移動するゾーンごとに UNIX 時間に 1 時間 (3600 秒) を加算または減算するだけです。例:

$userTimezone = new DateTimeZone('America/New_York');
$gmtTimezone = new DateTimeZone('GMT');
$myDateTime = new DateTime('2014-01-22 11:44', $gmtTimezone);
$offset = $userTimezone->getOffset($myDateTime);
echo $offset;

それは出力します: -14400 または 4 時間。ニューヨークとGMTの違いは何ですか

于 2014-01-22T02:46:39.750 に答える