php は時刻を取得します (システム時刻とネットワーク時刻)
phpを使用する場合、標準時間を使用することがよくあります。2つの方法があります。
最初の方法:
サーバー時刻を取得します
最初に php.ini で date.timezone = PRC
或者直接在程序页面加入date_default_timezone_set("PRC");
然后就可以使用time()
或date(''Y-m-d H:i:s)
を設定します 2 番目の方法: ネットワーク時刻を取得します (ここではインターネットから借用した、元のアドレス: http://justcoding.iteye )。 com/blog/843645)
航空券ビジネスの予約プロセスなど、このような状況があります。サポートするには非常に信頼できる現在時刻が必要です。ただし、ほとんどのサーバーの時刻は非常に正確ですが、当社では時刻を使用しています。 time() によって取得される時刻は信頼性がありますが、不正確である可能性があります。一部のサーバーでは時刻同期に ntp (Network Time Protocol) が有効になっておらず、ハードウェア環境などの要因により、時刻が異なる場合があります。同じ Web サイトで同じ時刻が使用されているため、数分、最大でも数時間の違いは問題ありませんが、場合によってはこれが問題となることがあります。インターネット上には、NTP プロトコルを使用して UTC 時刻修正を提供する無料のタイミング サーバーがあります。詳細については、前のリンクを参照してください。彼が提供する時刻誤差は約 20 ミリ秒です (データ送信プロセス中に消費される時間は言うまでもありませんが、NTP は長い間これを考慮していました)。そのため、このタイミング サーバーを通じて、非常に信頼性の高い現在時刻を取得できます。
ここで、PHP を使用して非常に正確な UTC 時刻を取得する方法を見てみましょう。NTP プロトコルは使用するのが少し難しいため、より優れたプロトコルであるデイタイム プロトコルを使用できます。テキスト データを直接取得すると、処理が容易になります。 time.nist.gov のタイム サービスを使用します。コードは、TCP を使用してポート 13 に接続するだけです。
<code><span>$fp</span>=fsockopen(<span>'time.nist.gov'</span>,<span>13</span>,<span>$errno</span>,<span>$errstr</span>,<span>90</span>); <span>echo</span> fread(<span>$fp</span>,<span>2010</span>); </code>
取得されるデータは次のようになります:
<code>55545 10<span>-12-15</span> 21<span>:40</span><span>:47</span> 00 0 0 113<span>.1</span><span>UTC</span>(<span>NIST</span>) * </code>
この文字列のすべての部分は意味を持っています。詳細については、http://www.nist.gov/pml/div688/grp40/its.cfm を参照してください。中央の部分と 206.9 の前の 0 のみに注意してください。これはサーバーの正常性状態を表し、現在の時刻が信頼できるかどうかも反映します。
OK、PHP を使用して正確な UTC 時間を取得します。このアプリケーションは、時間要件が非常に厳しい状況では依然として非常に価値があります。この時点で、私の問題は解決されました。
UTC標準時間がわかったので、あとはそれを世界時間に変換するだけです
<code><span>$fp</span>=fsockopen(<span>'time.nist.gov'</span>,<span>13</span>,<span>$errno</span>,<span>$errstr</span>,<span>90</span>); <span>$ufc</span> = explode(<span>' '</span>,fread(<span>$fp</span>,date(<span>'Y'</span>))); <span>$date</span> = explode(<span>'-'</span>,<span>$ufc</span>[<span>1</span>]); <span>$processdate</span> = <span>$date</span>[<span>1</span>].<span>'-'</span>.<span>$date</span>[<span>2</span>].<span>'-'</span>. date(<span>'Y'</span>).<span>' '</span>.<span>$ufc</span>[<span>2</span>]; <span>switch</span>(<span>$ufc</span>[<span>5</span>]) { <span>case</span><span>0</span>: <span>echo</span><span>'精确'</span>; <span>break</span>; <span>case</span><span>1</span>: <span>echo</span><span>'误差:0-5s'</span>; <span>break</span>; <span>case</span><span>2</span>: <span>echo</span><span>'误差: > 5s'</span>; <span>break</span>; <span>default</span>: <span>echo</span><span>'硬件出错!'</span>; <span>break</span>; } <span>echo</span> gmttolocal(<span>$processdate</span>,<span>8</span>); <span>// 中国 </span><span><span>function</span><span>gmttolocal</span><span>(<span>$mydate</span>,<span>$mydifference</span>)</span>{</span><span>$datetime</span> = explode(<span>" "</span>,<span>$mydate</span>); <span>$dateexplode</span> = explode(<span>"-"</span>,<span>$datetime</span>[<span>0</span>]); <span>$timeexplode</span> = explode(<span>":"</span>,<span>$datetime</span>[<span>1</span>]); <span>$unixdatetime</span> = mktime(<span>$timeexplode</span>[<span>0</span>]+<span>$mydifference</span>,<span>$timeexplode</span>[<span>1</span>],<span>0</span>,<span>$dateexplode</span>[<span>0</span>],<span>$dateexplode</span>[<span>1</span>],<span>$dateexplode</span>[<span>2</span>]); <span>return</span> date(<span>"m/d/Y H:i:s"</span>,<span>$unixdatetime</span>); } </code>
fsockopenの説明:
ネットワークのソケットリンクを開きます。
文法: int fsockopen(string hostname, int port, int [errno], string [errstr], int [timeout]);
戻り値: 整数
関数の種類: ネットワーク システム
コンテンツの説明 現在、この関数は 2 つのソケット データ フロー インターフェイス、つまりインターネット用の AF_INET と Unix 用の AF_UNIX を提供します。インターネットのコンテキストで使用される場合、パラメーター hostname と port はそれぞれ URL とポート番号を表します。 UNIX の場合、IPC を実行できます。ホスト名パラメーターはソケットへのパスを示し、ポートは 0 として構成されます。省略されたタイムアウト オプションは、接続が中断されるまでにかかる時間を示します。この関数を使用すると、ファイル ポインタが返され、fgets()、fgetss()、fputs()、fclose()、feof() などのファイル関数で使用できるようになります。パラメータ errno および errstr も省略され、主にエラー処理に使用されます。この関数を使用するとブロッキング モード処理が使用されますが、これは set_socket_blocking() でノンブロッキング モードに変換できます。
作者:leedaning
この記事のURL: http://blog.csdn.net/leedaning/article/details/48547123
上記は、PHP の取得時間 (システム時間とネットワーク時間) を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人の参考になれば幸いです。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP プログラムを使用して開発する場合、警告メッセージやエラー メッセージが表示されることがよくあります。その中で、表示される可能性のあるエラー メッセージの 1 つは、PHPWarning:date()expectsparameter2tobelong,stringgiven です。エラー メッセージの意味は次のとおりです。関数 date() の 2 番目のパラメーターは長整数 (long) であることが予期されていますが、実際に渡されるのは文字列 (string) です。それで、私たちは

システムのタイムスタンプに基づいてファイルやフォルダーを自動的に作成し、名前を付ける方法を探している場合は、ここが最適な場所です。このタスクを達成するための非常に簡単な方法があります。作成されたフォルダーまたはファイルは、ファイルのバックアップの保存、日付に基づいたファイルの並べ替えなど、さまざまな目的に使用できます。この記事では、Windows 11/10 でファイルとフォルダーを自動的に作成し、システムのタイムスタンプに基づいて名前を付ける方法を、非常に簡単な手順で説明します。使用される方法はバッチ スクリプトであり、非常に簡単です。この記事を楽しんで読んでいただければ幸いです。セクション 1: システムの現在のタイムスタンプに基づいてフォルダーを自動的に作成し、名前を付ける方法 ステップ 1: まず、フォルダーを作成する親フォルダーに移動します。

Date クラスの getTime() メソッドを使用して日付のミリ秒表現を取得する方法 Java では、Date クラスは日付と時刻を表すために使用されるクラスです。これは、日付オブジェクトに関する情報を操作および取得するための便利なメソッドを多数提供します。その中でも getTime() メソッドは Date クラスの重要なメソッドであり、日付オブジェクトのミリ秒表現を返すことができます。次に、このメソッドを使用して日付のミリ秒表現を取得する方法を詳しく説明し、対応するコード例を示します。 Date クラスの使用

今日は主に golang time パッケージの時間適用方法を見ていきます。この 2 つの間の一般的なルールは、時間を伝えるために「ウォールタイム」が使用され、時間を測定するために「モノトニッククロック」が使用されるということですが、他のクロック処理方法もあります。

1. はじめに java.util パッケージの Date クラスは、ミリ秒単位の正確な特定の時刻を表します。 Date クラスを使用したい場合は、Date クラスを導入する必要があります。 Date クラスに年を直接書き込んでも、正しい結果は得られません。 Java の日付は 1900 年から計算されるため、最初のパラメータに 1900 年からの年数を入力すれば、必要な年が得られます。月は 1 を引く必要がありますが、日は直接挿入できます。この方法はほとんど使用されず、2 番目の方法が一般的に使用されます。 yyyy-MM-ddなどの特定の形式に従った文字列をDate型データに変換する方法です。まず、Date型Dateのオブジェクトを定義します。

PHP のexplode関数は、文字列を配列に分割するために使用される関数で、非常に一般的で柔軟性があります。分解関数を使用する過程で、エラーや問題が発生することがよくありますが、この記事では、分解関数の基本的な使用方法を紹介し、エラー報告を解決するいくつかの方法を紹介します。 1.explode関数の基本的な使い方 PHPでは、explode関数の基本的な構文は次のとおりです。explode(string$separator,string$stri

Python には、使用できる優れたカレンダー ライブラリと日付ライブラリが多数あり、これらのライブラリは日付とカレンダー関連の操作を処理するのに役立ちます。次に、いくつかの一般的な選択肢を紹介し、対応するコード例を示します。 Datetime ライブラリ: datetime は、Python の組み込みの日付と時刻処理モジュールであり、日付、時刻、時差、その他の操作の処理に使用できる、日付と時刻に関連する多くのクラスとメソッドを提供します。サンプルコード: importdatetime#現在の日付を取得する

タイトル: PHP でexplode関数を使用する際の一般的なエラーと解決策 PHPでは、explode関数は、文字列を配列に分割するために使用される一般的な関数です。ただし、不適切な使用や不正なデータ形式が原因で、いくつかの一般的なエラーが発生する可能性があります。この記事では、explode 関数の使用時に発生する可能性のある問題を分析し、解決策と具体的なコード例を示します。間違い 1: delimiter パラメーターが渡されない。explode 関数を使用するときに最もよくある間違いの 1 つは、delimiter パラメーターが渡されないことです。
