1、ローカルタイムスタンプを取得します
PHP は、mktime() 関数を使用して時刻を UNIX タイムスタンプ値に変換します。タイムスタンプは、UNIX 時代 (1070 年 1 月 1 日) を含む長い整数です。興味のある人は、この中にストーリーがあるはずです。
mktime() 関数の構文形式は次のとおりです:
int mktime(int 時間、int 分、int 秒、int 月、int 日、int 年、int [is_dis])
mktime() 関数のパラメーターについては、次の表で説明します。
2. 時刻と日付を取得します。
php の time() 関数を通じて現在の UNIX タイムスタンプを取得します。構文形式は次のとおりです:
int 時間 (無効)
PHP の date() 関数は、現在の時刻と日付を取得するために使用されます。 date() 関数の形式は次のとおりです:
date(文字列形式、int タイムスタンプ)
日付形式の関数は次の表に示すとおりです。
getdate() 関数は、主に日付の関連情報を取得するために使用されます。 getdate() の形式は次のとおりです:
配列 getdate(int タイムスタンプ)
返される配列要素は次の表に示されています:
具体的なサンプルコードは以下の通りです:
<code><span><span><?php</span><span>$array</span> = getdate(); <span>echo</span><span>$array</span>[<span>'year'</span>].<span>"-"</span>.<span>$array</span>[<span>'mon'</span>].<span>"-"</span>.<span>$array</span>[<span>'mday'</span>]; <span>?></span></span></code>
実行結果は以下の通りです:
3. 日付の有効性を確認します。
日付の有効性のチェックは、主に checkdate() 関数を通じて実装されます。具体的な構文は次のとおりです。
bool checkdate(int 月、int 日、int 年)
以下のコードを使用して実装してみましょう:
<code><span><?php</span><span>$year</span> =<span>2011</span>; <span>$month</span> =<span>2</span>; <span>$day</span> =<span>31</span>; <span>echo</span> var_dump(checkdate(<span>$day</span>,<span>$month</span>,<span>$year</span>)); <span>?></span></code>
4、フォーマットされた時刻と日付を出力します
これは主に date() 関数を通じて実現されます。
形式パラメーターは次のとおりです:
5、最初にローカライズされた時刻と日付
時刻と日付のローカライズは主に setlocale() 関数を通じて実現されます。
具体的な構文は次のとおりです:
string setlocale(文字列カテゴリ,文字列ロケール)
パラメーター カテゴリのオプションは次の表に示すとおりです。
locale パラメーターが空の場合は、システム変数の locale または lang 値が使用され、それ以外の場合は、locale で指定されたローカリゼーション環境が適用されます。たとえば、en_US は米国のローカライズされた環境、chs は簡体字中国語、cht は繁体字中国語を指します。
strftime()関数
strftime() 関数は、ロケール環境に従って出力時刻と日付をフォーマットします
構文形式は次のとおりです:
string strftime(string format, int timestamp)
具体的なコード例は次のとおりです:
<code><span><?php</span>setlocale(LC_ALL,<span>"en_US"</span>); <span>echo</span><span>"美国格式:"</span>.strftime(<span>"Today is %A"</span>).<span>"\n"</span>; setlocale(LC_ALL,<span>"chs"</span>); <span>echo</span><span>"中文简体格式:"</span>.strftime(<span>"今天是:%A"</span>).<span>"\n"</span>; setlocale(LC_ALL,<span>"cht"</span>); <span>echo</span><span>"繁体中文格式:"</span>.strftime(<span>"今天是 :%A"</span>).<span>"\n"</span>; <span>?></span></code>
実行結果は次のとおりです:
6、時刻と日付を UNIX タイムスタンプに解析します。
int strtotime(文字列時間,[,int 時間])
この関数には 2 つのパラメータがあります。時間が絶対時間の場合、now パラメータは効果がありません。時間パラメータの形式が相対時間の場合、対応する時間がすでに提供されています。現在時刻が指定されていない場合、対応する時刻が現在時刻になります。解析が失敗した場合は false を返します。
サンプルコードは次のとおりです:
<code><span><span><?php</span><span>echo</span> strtotime(<span>"now"</span>).<span>"\n"</span>; <span>//当前时间的时间戳</span><span>echo</span><span>"输出时间:"</span>.date(<span>"Y-m-d H:i:s"</span>,strtotime(<span>"now"</span>)).<span>"\n"</span>; <span>//按照格式要求输出当前的时间</span><span>echo</span> strtotime(<span>"21 May 2009"</span>).<span>"\n"</span>; <span>//输出指定时间的时间戳</span><span>echo</span><span>"输出时间:"</span>.date(<span>"Y-m-d H:i:s"</span>,strtotime(<span>"21 May 2009"</span>)).<span>"\n"</span>; <span>//按照格式输出指定时间的时间</span><span>echo</span> strtotime(<span>"+3 day"</span>).<span>"\n"</span>; <span>// 输出三天以后的时间戳</span><span>echo</span><span>"输出时间:"</span>.date(<span>"Y-m-d H:i:s"</span>,strtotime(<span>"+3 day"</span>)).<span>"\n"</span>; <span>//按照格式输出三天后的时间</span><span>echo</span> strtotime(<span>"+1 week"</span>).<span>"\n"</span>; <span>//输出一周以后的时间戳</span><span>echo</span><span>"输出时间:"</span>.date(<span>"Y-m-d H:i:s"</span>,strtotime(<span>"+1 week"</span>)).<span>"\n"</span>; <span>//按照格式输出一周以后的时间</span><span>echo</span> strtotime(<span>"+1 week 2 days 3 hours 4 minutes"</span>).<span>"\n"</span>; <span>echo</span> strtotime(<span>"next week"</span>).<span>"\n"</span>; <span>echo</span> strtotime(<span>"last Monday"</span>).<span>"\n"</span>; <span>?></span></span></code>