php学習ノートのタイムゾーンについて

7257 ワード

科学普及はタイムゾーンとは何ですか?
周知のように、地球は太陽の周りを回ると同時に自転するため、同じ時刻に異なる地域で太陽の照射を受ける場合が異なるため、日の出の地域もあれば、日没の地域もあり、夜の地域もある.
地球上の異なる地域の時間が異なる以上、文化科学技術の交流を便利にするには統一的な時間の目盛りが必要だろう.さもないと、みんなが言っているのは現地の時間だ.そうすれば、でたらめではないか.
問題があれば問題を解決し、地域によって時間が異なると時間基準を統一しなければならないが、統一時間基準の前提は世界の時間の違いがどこにあるのか、各地の現地時間がどのように互いに転換しているのかを明らかにすることである.
従来の時間基準はグリニッジ標準時間であり、正確な計時の発展に伴い、新しい時間基準に取って代わられ、現在の時間基準は世界協調時である.
今は統一的な時間基準があり、地域によって時間が統一的に世界協調に換算され、現地時間に変換され、同じ時刻で異なる時間は二度と現れません.
例:
  • 北京時間(UTC+8):2019-05-30 13:30:00
  • ワールドタイム(UTC):2019-05-30 05:30:00
  • 東部標準時(UTC-5):2019-05-30 00:30:00
  • グリニッジ標準時
    グリニッジ標準時
    グリニッジ平均時間または
    グリニッジ標準時、英語は
    GreenwichMeanTime、略称
    GMT)、グリニッジ標準時の正午は太陽が横切る時
    グリニッジ子午線時(すなわちグリニッジ時)の時間.
    グリニッジはイギリスのロンドンの町で、地理経度の起点であり、本初子午線の経度は零度経度であり、所在する時区は零時区である.
    私たちは1日に24時間があり、世界の24時間区に対応していることを知っています.地球は西から東へ自転し、ゼロ時間区の後、東1区から東11区、それから東12区です.続いて西十二区、西十一区から西一区まで、最後にゼロタイム区に戻った.
    そのうち東十二区と西十二区は
    同じタイムゾーンは、
    東西十二区
    総じて言えば、時区は東十二区と西十二区と零時区に分けられ、そのうち東西十二区は同じ時区であるため、24の時区がある.
    例:
    北京は東八区に位置し、零時区より8時間多いため、北京時間がグリーン標準時間より8時間速いことを意味する.
    だから、北京時間の昼12時ちょうど、グリニッジは朝4時なので、まだ寝ていると思います.(GMT+8は北京時間)
    グリニッジ標準時と
    地球の自転関系は、正确なタイミングの需要を満たすことができないため、
    標準時間は、代わりに世界を調和させる時だ.
    世界を調和させる時
    世界を調和させる時
    世界統一時間または
    世界標準時間または
    国際協調時間、英語は
    Coordinated Universal Time、略称
    UTC)は、世界を調整する際に
    原子の時間と秒の長さに基づいて、時刻の上でできるだけ
    グリニッジ標準時間の時間計量システムである.
    秒まで正確にする必要がない場合、GMTUTCはほぼ一致するが、UTCはより正確な原子の時を基礎とするため、科学計算の分野でよく用いられ、現在の時間計量の統一基準でもある.
    例:
    北京時間12:00GMTまたはUTCに換算すると04:00(UTC+8も北京時間)
    北京時間
    北京時間
    中国標準時)は、首都北京にあるタイムゾーンが中国の標準時として
    グリニッジの標準時間は8時間速い.
    わが国は幅が広く、西から東へ東五、東六、東七、東八、東九などの5つのタイムゾーンにまたがっている.だから全国は首都北京の所在する東八時区の区を統一的に標準時間として採用して、つまり北京時間です.
    タイムゾーン情報データベース
    タイムゾーン情報データベースは、Olsonデータベースとも呼ばれ、主にコンピュータプログラムやオペレーティングシステムに応用される
    世界タイムゾーン情報のデータベースを共同で編集する.
    タイムゾーン情報データベースは「領域/位置」による命名規範を採用し、コンピュータの世界に便利であり、英語の地名のスペースは下線「」である.代わりに、連語符「-」は、英語の地名そのものが含む場合にのみ使用する.
    例:
  • Asia/Hong_Kong:アジア/香港
  • Asia/Macau:アジア/マカオ
  • Asia/Shanghai:アジア/上海
  • Asia/Taipei:アジア/台北
  • Asia/Urumqi:アジア/ウルムチ
  • 上記タイムゾーンは主にphpでサポートされている中国タイムゾーンは、アジアでサポートされているタイムゾーンのリストを参照してください.
    タイムゾーンのプログラミング実装について
    タイムゾーンは現実生活の問題だけでなく、コンピュータのプログラミングの世界にも時間があり、自然にタイムゾーンの概念から離れられない.
    コンピュータの世界の中で、すべてはすべてデータで、最も良いタイムゾーンの概念も関連データベースの中で体現することができて、幸いなことにすでに先輩が私达にタイムゾーンの情報データベースを提供して、各種の言語は基本的にタイムゾーンのツール類を提供します.phpにおける日時関数ライブラリはphpに内蔵関数ライブラリであり、時間の操作やタイムゾーンの設定などを容易に行うことができる.
    通常、dateの拡張はデフォルトで有効である、phpinfoに入力してphpの基本情報を印刷し、キーワードdateを検索するとdateの拡張に関する情報を見つけることができる.
  • ";
    
    //       
    echo "    : ".date_default_timezone_get()."
    "; // echo " : ".date("Y-m-d H:i:s")."
    "; // php phpinfo(); ?>
  • 結果
  • デフォルトタイムゾーン:現在タイムゾーン:UTC現在時間:2019-05-30 05:30:00
    オプション

    date/time support(日付時間サポート状況)
    enabled(有効)
    timelib version(タイムライブラリバージョン)
    2016.05( 2016.05 )
    「Olson」Timezone Database Version(Olsonタイムゾーンデータベースバージョン)
    2018.5( 2018.5 )
    Timezoneデータベース
    internal
    Default timezone(デフォルトタイムゾーン)
    UTC(世界調整時)
    したがって,タイムゾーンを設定しないとすると,デフォルトタイムゾーンは
    世界を調和させる時、この時間帯は北京時間に比べて遅い.8時間!
    タイムゾーンの3つのポーズを設定phpの開発文書をめくると、現在のすべてのサポートタイムゾーンのリストが見つかり、以下に中国の主要タイムゾーンについて整理することができる.
  • Asia/Hong_Kong:アジア/香港
  • Asia/Macau:アジア/マカオ
  • Asia/Shanghai:アジア/上海
  • Asia/Taipei:アジア/台北
  • Asia/Urumqi:アジア/ウルムチ
  • 常用タイムゾーンは上海で、北京はありません.PRC(中華人民共和国)!
    タイムゾーンが設置されていなければ、デフォルトタイムゾーンは協調世界時(UTC)であるべきであり、共通の時間基準とはいえ現地時間に変換するには一定の換算が必要であり、見た目もあまり快適ではない.
    だから、タイムゾーンの設定項目を修正したほうがいいです.業務が国際化の需要を考慮しなければ、永久的にタイムゾーンを固定すればいいです.国際化の業務シーンがあれば、ダイナミックにタイムゾーンを設定すれば、現地時間がはっきりわかります.
    そこで、以下では、静的設定と動的設定の2つの方法を主に提供する、動的設定の2つの方法を提供する.
    静的変更phpの構成phpのプロファイルのデフォルトは次のとおりです./private/etc/php.ini、ファイルを開いてから変更date.timezoneオプション.
    この方法はプロファイルを直接修正するため、タイムゾーン設定後はすべてのスクリプトに適用され、サーバを再起動する必要があるだけで有効になります.
  • [Date]
    ; Defines the default timezone used by the date functions
    ; http://php.net/date.timezone
    ;date.timezone =
    
    ; http://php.net/date.default-latitude
    ;date.default_latitude = 31.7667
    
    ; http://php.net/date.default-longitude
    ;date.default_longitude = 35.2333
    
    ; http://php.net/date.sunrise-zenith
    ;date.sunrise_zenith = 90.583333
    
    ; http://php.net/date.sunset-zenith
    ;date.sunset_zenith = 90.583333
  • 結果
  • #   ;     ,     PRC,    Asia/Shanghai   
    date.timezone = PRC

    詳細は以下を参照してください.http://php.net/date.timezone
    動的設定php構成
    ini_setは、現在のスクリプトのデフォルトタイムゾーンを設定するオプションをサポートする.
    静的設定タイムゾーンは、タイムゾーンが固定する場合にのみ適合する、ダイナミックにタイムゾーンを切り替える必要がある場合は、プロファイルを変更することはできない.
    したがって、phpには、php.iniのプロファイルを動的に変更する方法も提供する、ini_set()の方法は、動的設定タイムゾーンをちょうどサポートする.
    サーバを再起動する必要はありませんが、
    現在のスクリプトが有効です.ini_set方法でサポートするphp.ini構成オプションリスト
  • //       
    ini_set("date.timezone", "Asia/Tokyo");
    
    //       
    echo "    : ".ini_get("date.timezone")."
    "; // echo " : ".date("Y-m-d H:i:s")."
    ";
  • 結果
  • 現在タイムゾーン:Asia/Tokyo現在時間:2019-05-30 14:30:00
    ダイナミック設定phpタイムゾーン
    date_default_timezone_setメソッドは、現在のスクリプトのデフォルトタイムゾーンを設定するために使用する.ini_setはタイムゾーンの設定オプションをサポートするが、結局は専門的なタイムゾーンの設定方法ではなく、date_default_timezone_setこそタイムゾーンを専門的に設定方法である.
    この2つの方法はいずれも動的設定タイムゾーンに属し、いずれも現在のスクリプトに対して有効であり、サーバを再起動することなくすぐに有効である.
  • //       
    echo "    : ".date_default_timezone_get()."
    "; // date_default_timezone_set("UTC"); // echo " : ".date_default_timezone_get()."
    "; // echo " : ".date("Y-m-d H:i:s")."
    ";
  • 結果
  • カレントタイムゾーン:Asia/Tokyoカレントタイムゾーン:UTCカレントタイム:2019-05-30 05:30:00
    タイムゾーンのまとめについて
    時間帯は時間と密接に関係しており、統一時間は実際には統一時間の基準であり、このような地域の現地時間は簡単に別の地域の現地時間に変換することができる.
    現在、世界で統一された時間基準は協調時間(UTC)、中国の時間基準は北京時間であり、北京時間は協調時間より8時間速い.
    現実世界のタイムゾーンもコンピュータ世界に反映され、タイムゾーン情報データベースは現実世界を表すタイムゾーン概念である.
    このことから、タイムゾーンは共通の概念であり、phpにタイムゾーンがあるだけでなく、javajsなどの言語にもタイムゾーンの概念があり、時間さえあればタイムゾーンから離れられないと言える.
    タイムゾーンの小さなスキルについて、getに着きましたか?
  • 米ドラマ<>現地時間は火曜日の夜8時からですが、北京時間はいつからですか?
  • 英ドラマ<>北京時間の午前4時半にスタートしますが、現地時間はいつからですか?
  • タイドラマ<>現地時間は夜9時20分からですが、北京時間はいつですか?

  • 参考資料
  • タイムゾーン関連知識掃盲
  • 時区時差時間換算