PHP時間が8時間違う8はどこから来たのですか?どのようにして正しいタイムゾーンを手に入れますか?どのように優雅な処理時間ですか?


PHP時間、タイムゾーンが8時間違う8はどこから来たのですか?どのようにして正しいタイムゾーンを手に入れますか?どのように優雅な処理時間ですか?
PHPタイムゾーンサポートリスト
date_default_timezone_set('PRC');//         
$date = new DateTime();
var_dump($date->getOffset());

または
var_dump(timezone_offset_get(new DateTimeZone( 'PRC' ), new DateTime())/3600);

上の出力値は28800秒、28800/3600=+8
これが私たちの8の由来です!
========================================
date_default_timezone_set('Europe/Paris');//      
$date = new DateTime();
var_dump($date->getOffset());

または
var_dump(timezone_offset_get(new DateTimeZone( 'Europe/Paris' ), new DateTime())/3600);

上の出力値は7200秒、7200/3600=+2
これが私たちの2の由来です!
見えますか?PHPプロファイルのタイムゾーンが異なる場合、
$date->getOffset()
値も違う!動的相対値です!信じられない!
言い換えれば、
  • 1.あなたのクラスライブラリなどで多情なタイムスタンプを+8または-8で処理しないでください.サーバーのタイムゾーンが固定タイムゾーンであることを保証できますか?
  • 2.プログラムの移植性のために、タイムスタンプを+8または-8で処理してはいけません.あなたは永遠にサーバーを交換しないことを保証することができます.メンテナンススタッフはあなたの情熱的な配置を間違っていますか?
  • var_dump(date_default_timezone_get());
    現在のタイムゾーンを個別に表示できます!
    実戦:
    date_default_timezone_set('PRC');
    あなたのconfigをロードします.phpの頭部はデフォルトで中国のタイムゾーンで、次のすべて、あなたはタイムゾーンの問題を無視することができます!!!
    PHPタイムゾーン、時間の厄介な問題を優雅に処理しました!
    注意:
    echo time();

    time()は常に新しい紀元タイムスタンプに戻り、タイムゾーンの影響を受けませんよ!
    メモ:
    1年後のタイムスタンプ、1月後、1週間などのタイムスタンプを表示します.
    echo strtotime('+1 week');
    echo strtotime('+1 month');
    echo strtotime('+1 year');
    echo strtotime('-1 year');//1