Createing Web site Study Blog ~ WEB制作に関するお勉強ブログ ~

  • Share on Tumblr

まず、デフォルトで日本時間を取得しておきます。



1. 現在の日付または時刻を表示する

日付または時刻の最も簡単な表示は、現在時刻を告げることです。
date()、またはstrftime()関数を使います。


書式



何時ですか?



上記は、以下のように出力されます。


出力結果



どちらの関数も、引数を2つとります。1番目は時刻、または日付の文字列がどのようにフォーマットされるかを制御します。2番めは何時、または何日に対して使うかを制御します。2番めの引数を省くと、time()関数の値、つまり現在時刻が適用されます。


date()でフォーマットされた日付の文字列を出力する



出力結果



strftime()でフォーマットされた日付の文字列を出力する



出力結果



strftime()とdate()では、フォーマット文字が違うので注意。
それぞれのパラメーターは以下を参照。


date()のパラメーター
http://php.net/manual/ja/function.date.php


strftime()のパラメーター
http://php.net/manual/ja/function.strftime.php



2. 特定の日付または時刻を表示する

つぎに、2番めの引数を使って、特定の時間のためにフォーマットされた時間の文字列を出力してみます。この場合、エポックタイムスタンプを利用します。


エポックタイムスタンプとは?
通常、日時の計算を簡単にプログラミングするために、特定の時刻や日付を単一の値として扱います。つまり1970年1月1日から何秒経ったのかと言う数値。この値をエポックタイムスタンプといいます。1時間後の時間を求めるには、以下のようになります。
現在の時間が13:00だとすると、time()+60*60は、午後2時のエポックタイムスタンプと等しくなります。(60*60=3600、1時間の秒数)





3. strftime()とdate()の使い分け

date()および、strftime()関数はそれぞれ長所があります。
以下のように表示する場合は、strftime()のほうが簡単です。




出力結果



date()関数は、strftime()がしないような、うるう年の表示、DST表示、いくつかの値の先頭のゼロを省略するような書式をサポートしています。strftime()は、フォーマット文字がWindows上でサポートされませんが、date()を使えば、どこでも同じ動作になることが保証されています。通常は、date()を選ぶほうがベターなようです。



4. 相対的な日付や時間を利用する

4-1. mktime()を使う

日付と時刻の値を使って、他の時間をエポックタイムスタンプに変換してみます。
相対的な時間を使用する場合には、mktime()を利用します。


書式



mktime()の引数は全てオプションで、何も指定しない場合デフォルトは現在の日付と時間です。




以下のエポックタイムスタンプを返します。


出力結果



よって、1970/1/1から、1344840476秒後が、現在の日時となるわけです。
これを、日付で表示したい場合は、どうすればいいでしょうか。




出力結果



となるので、相対的な日時を出力したい場合は、mktime()の引数を変更すればいいわけです。




出力結果




4-2. strtotime()を使う

相対的な時間の英語記述を解釈して適切なエポックタイムスタンプを返す関数です。strtotime()が従う文法は複雑すぎるらしいので、ザクっとだけ知っておこうと思う。




出力結果

コメントを残す

コメントを投稿するにはログインしてください。