PHP には多数の組み込み関数が用意されているため、開発者は時間を簡単に処理でき、作業効率が大幅に向上します。一般的な PHP の日付と時刻の関数と日付と時刻の処理をいくつか紹介します。
よく使用される日付と時刻の処理関数
機能番号 |
話す |
日付を確認 |
時間関数を検証して時間が有効かどうかを判断し、有効な場合は true を返し、そうでない場合は false を返します |
date_default_timezone_get |
スクリプトの日付と時刻関数で使用されるデフォルトのタイムゾーンを取得します |
date_default_timezone_set |
日時関数のデフォルトのタイムゾーンを設定する |
日付 |
現地の時刻/日付をフォーマットする |
デート |
日付/時刻情報を取得する |
今日の時間を取得 |
現在時刻を取得する |
現地時間 |
現地時間を取得する |
マイクロタイム |
現在のタイムスタンプとマイクロ秒を返します |
mktime |
UNIX タイムスタンプを取得する |
ストタイム |
英語テキストの日時記述を UNIX タイムスタンプに解析します |
時間 |
現在のUNIXタイムスタンプを返します |
システムのタイムゾーン設定
学習の過程で、date() 関数によって取得された時刻が現地時間と異なることがわかりました。これは、PHP5 が date() 関数を書き換えるためであり、そのため、現在の日付と時刻関数は、現地時間よりも 8 時間短くなります。システム時刻。 PHP 言語のデフォルト設定は標準グリニッジ時間です (つまり、ゼロ タイム ゾーンが使用されます)。 PHP 言語でタイムゾーン設定を変更するには、主に 2 つの方法があります:
1. php.ini ファイルの設定を変更し、[date] の下にある;date.timezone = オプションを見つけて、この項目を date.timezone=Asia/Hong_Kong に変更し、Apache サーバーを再起動します。
2. アプリケーションで、時刻と日付関数を使用する前に次の関数を追加します。
date_default_timezone_set("Asia/Hong_Kong"); 設定が完了すると、date()関数が正常に使用できるようになり、時差の問題は発生しなくなります。
UNIX タイムスタンプ
タイムスタンプは、ファイル属性の作成、変更、およびアクセス時刻です。デジタル タイム スタンプ サービス (DTS) は、電子ファイルの日時情報をセキュリティ保護できる Web サイトのセキュリティ サービスの 1 つです。
タイムスタンプは暗号化された認証情報文書であり、次の 3 つの部分で構成されます:
² タイムスタンプを付ける必要があるファイルは、ハッシュ エンコーディングで暗号化されてダイジェストが形成されます。
² DTS はファイルの日付と時刻の情報を受け入れます。
² 受信した DTS ファイルを暗号化します。
デジタル時刻は、DTS がファイルを受信した時刻に基づいて、認証ユニット DTS によって追加されます。タイムスタンプの動作原理は、時刻が変更されると、暗号化された値も変更されることによって、時刻の値を暗号化された値に変換することです。タイムスタンプの利点は、暗号化値を変更することで値の盗難や不正な再利用を防ぐことであり、これも暗号化の役割を果たします。タイムスタンプは主に時間に依存し、合意された期間内に一意の値を生成します。
mktime() 関数
文法:
int mktime(int 時間、int 分、int 月、int 日、int 年、int [is_dst])
パラメータ |
話す |
時間 |
営業時間 |
分 |
分 |
二番目 |
秒数(1分以内) |
月 |
月数 |
日 |
日々 |
年 |
年数 |
is_dst |
夏時間中はパラメータ is_dst を 1 に設定でき、そうでない場合は 0 に設定できます。夏時間かどうか不明な場合は -1 (デフォルト値) に設定します |
date()関数
日付(文字列形式、intタイムスタンプ)
この関数は、指定された形式に従ってタイムスタンプ パラメーターによって生成された文字列を返します。パラメータのタイムスタンプはオプションです。省略した場合は、現在の時刻が使用されます。 format パラメーターを使用すると、開発者は指定した形式で時刻と日付を出力できます。
date_default_timezone_set(PRC); //北京時間を設定します
format キャラクター |
説明 | 戻り値の例 |
---|---|---|
日 | --- | --- |
d | 日付、先頭にゼロを付けた 2 桁の数字 | 01から31 |
D | 曜日、テキスト表現、3文字 | 月から日 |
j | 先行ゼロなしの日付 | 1から31 |
l(Lの小文字) | 曜日、完全なテキスト形式 | 日曜日から土曜日 |
ん | ISO-8601 形式の数字で表される曜日 (PHP 5.1.0 で新しく追加されました) | 1 (月曜日を意味します) から 7 (日曜日を意味します) |
S | 月の日の後の英語の接尾辞、2文字 | st、nd、rd、またはth。 j | と一緒に使用できます
w | 数字で表される曜日 | 0 (日曜日を意味します) から 6 (土曜日を意味します) |
z | 今年の日 | 0から365 |
週 | --- | --- |
W | ISO-8601 形式の年の週番号。各週は月曜日から始まります (PHP 4.1.0 の新機能) | 例: 42 (年の第 42 週) |
月 | --- | --- |
F | 月、完全なテキスト形式(1 月や 3 月など) | 1月から12月 |
m | 先頭にゼロを付けた数字で表される月 | 01から12 |
M | 月の 3 文字の略語 | 1月から12月 |
ん | 先行ゼロを除いた数字で表される月 | 1から12 |
t | 特定の月の日数 | 28から31 |
年 | --- | --- |
L | 閏年かどうか | うるう年の場合は1、それ以外の場合は0 |
お | ISO-8601 形式の年番号。これは Y と同じ値ですが、ISO 週番号 (W) が前年または翌年に属している場合は、その年が使用される点が異なります。 (PHP 5.1.0の新機能) | 例: 1999 または 2003 |
よ | 4桁で表される完全な年 | 例: 1999 または 2003 |
y | 2桁の年 | 例: 99 または 03 |
時間 | --- | --- |
あ | 小文字の AM と PM の値 | 午前または午後 |
A | 大文字の午前と午後の値 | 午前または午後 |
B | インターネット標準時間の見本 | 000から999 |
g | 時間、12 時間形式、先頭のゼロなし | 1から12 |
G | 時間、24 時間形式、先頭のゼロなし | 0から23 |
は | 時間、12 時間形式、先行ゼロ付き | 01から12 |
H | 時間、24 時間形式、先行ゼロ付き | 00から23 |
私 | 先行ゼロ付きの分 | 00から59> |
s | 秒、先行ゼロ付き | 00から59> |
う | ミリ秒 (PHP 5.2.2 の新機能)。 date() 関数は整数パラメーターのみを受け入れ、DateTime::format() はミリ秒のみをサポートするため、常に 000000 を返すことに注意してください。 | 例: 654321 |
タイムゾーン | --- | --- |
え | タイムゾーンインジケーター (PHP 5.1.0の新機能) | 例: UTC、GMT、大西洋/アゾレス諸島 |
私 | 夏時間ですか | 夏時間の場合は 1、それ以外の場合は 0 |
お | グリニッジ標準時からの時間 | 例: +0200 |
P | グリニッジ標準時(GMT)との違いは、時と分を区切るコロンです(PHP 5.1.3で新たに追加されました) | 例: +02:00 |
た | このマシンが設置されているタイムゾーン | 例: EST、MDT ([翻訳者注] Windows では東部標準時などの完全なテキスト形式では、中国語版では中国標準時が表示されます)。 |
Z | 時差オフセット(秒単位)。 UTC より西のタイム ゾーン オフセットは常に負であり、UTC より東のタイム ゾーン オフセットは常に正です。 | -43200から43200 |
完全な日付/時刻 | --- | --- |
c | ISO 8601 形式の日付 (PHP 5 の新機能) | 2004-02-12T15:19:21+00:00 |
r | RFC 822 形式の日付 | 例: Thu, 21 Dec 2000 16:01:07 +0200 |
U | Unix エポック (1970 年 1 月 1 日 00:00:00 GMT) からの秒数 | 時間を見てください() |
getdate()関数
この関数は、日付と時刻の情報を配列の形式で返します。タイムスタンプがない場合は、現在の時刻が優先されます。
要素 |
話す |
秒 |
秒、戻り値 0~59 |
分 |
分、戻り値は0~59です |
時間 |
時間、戻り値は0~23です |
今日 |
日付、戻り値は1~31です |
平日 |
曜日、戻り値は0(日曜日)〜6(土曜日)です |
モン |
月番号、戻り値は1~12です |
年 |
4 桁で表される完全な年、戻り値に 2000 または 2008 を加えたもの |
今日 |
日付、戻り値 0~365 |
平日 |
曜日の完全なテキスト表現、戻り値は日曜日〜土曜日です |
月 |
月の完全なテキスト表現、戻り値は1月〜12月です |
0 |
UNIX エポックからの秒数を返します |
2倍の大きさを比べてください
実際の開発では、PHP の 2 つの時間の大きさを直接比較できないという問題によく遭遇します。したがって、まず時刻をタイムスタンプ形式で出力してから比較する必要があります。これが一般的に使用される方法です。
この機能を実現できる関数は 2 つあります。ここでは strtotime() 関数を使用します。この関数は、英語のテキストの日付と時刻の記述を UNIX タイムスタンプに解析できます。 この関数の構文は次のとおりです:
int strtotime(文字列時間, int now)
この関数には 2 つのパラメータがあります。パラメータ time の形式が絶対時間の場合、now パラメータは効果がありません。パラメータ time の形式が相対時間の場合、パラメータ now が指定されていない場合は、対応する時間が提供されます。対応する時刻は現在時刻です。解析が失敗した場合は、-1 が返されます。
ページスクリプトの実行時間を計算します
Web サイトを閲覧するときに検索エンジンがよく使用されます。情報を検索するとき、慎重なユーザーは、通常、検索結果の下部に「検索時間は...秒」という言葉があることに気づくでしょう。ここでは microtime() 関数が使用されており、現在の UNIX タイムスタンプとマイクロ秒を返します。 msec sec 形式の文字列を返します。ここで、sec は現在の UNIX タイムスタンプ、msec はマイクロ秒数です。この関数の形式は次のとおりです:
文字列マイクロタイム(void)
リーリー
$sub2 ; $end_time = run_time(); echo '時間がかかります'.($end_time - $start_time);
http://www.bkjia.com/PHPjc/1030446.html