日時を扱う関数について考えていきたいと思います。9月6日記事
目次
世界の日時はそれぞれ違います。サーバが主に提供している国のタイムゾーンの日時がよく使われますが、日付はただ単に取得、表示するだけでなく、ファイル名の管理にも時々使われたりしています。そんな例を最後に見せていきたいと思います。
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>時間</title> </head> <body> <?php date_default_timezone_set('Asia/Tokyo');//timezoneの設定。php.iniで設定していなければ書く。 //東京時刻 $time = date("Y-m-d H:i:s"); echo $time."<br>"; //月だけ取り出す。 $dtime = date("m"); echo $dtime."<br>"; //年と月だけ取り出す。 $dtime = date("Ym"); echo $dtime."<br>"; //グリニッジ時刻 $gtime = gmdate("Y-m-d H:i:s"); echo $gtime."<br>"; //UNIXタイムスタンプ 1970年1月1日からの秒数 echo time()."<br>";//1970年1月1日からの秒数 echo microtime()."<br>";//マイクロ秒を先に表示 例 0.04775200 1441590461 echo microtime(true)."<br>";//time関数のあとに小数点でマイクロ秒を表示 例 1441590461.0478 echo strtotime("now")."<br><br>";//time()と同じ。 //配列で取得 //現在の日時配列 $today = getdate(); print_r($today);//配列のydayは365日換算で何日目か。最後の0はUNIX時で1970年1月1日からの秒数 echo "<br>"; //日時配列、英語の月表記やUNIX時を除く $localtime = localtime(time(),true); print_r($localtime); echo "<br>"; //最後に。何かプログラムを。 //UNIX時のマイクロタイムのドットを抜いたもの $origintime = str_replace(".","",microtime(true)); echo $origintime."<br>"; //管理者にわかりやすいように日時も付与 $origintime1 = date("YmdHis").str_replace(".","",microtime(true)); echo $origintime1."<br>"; echo "上の桁数は".strlen($origintime1); //これらをファイル名やデータベースに格納していけばオリジナルの名前がつけられる。 ?> </body> </html>
最後の部分は、日付を使って、一瞬だけを切り取る時に使えるようにしました。アップロード時の時刻やアップロードしたファイルに適当に名前を付けたい時や他のファイル名とかぶらないようにするときに使われたりします。
以上