第10章日付と時間

3687 ワード

勉強のポイント:1.PHP日付と時間ライブラリPHPを使用してプログラミングする場合、他の多くのデータに比べて日付と時間が大きく異なります.日付と時間は明確な構造がないため、日付の計算や表示も面倒です.PHPでは、日付と時間関数ライブラリがPHP言語のコア部分です.タイムスタンプは、1970年1月1日(00:00:00:00 GMT)以降の秒数である.Unixタイムスタンプ(Unix Timestamp)とも呼ばれる.Unixタイムスタンプ(Unix timestamp)、またはUnixタイム(Unix time)、POSIXタイム(POSIX time)と呼ばれる時間表現である.グリニッジ時間1970年01月01日00時00分00秒から現在までの総秒数として定義されている.Unixタイムスタンプは、Unixシステム、クラスUnixシステムのみならず、多くの他のオペレーティングシステムでも広く採用されている.例えば(118457366は2007-07-16 03:42:46を表す)1.PHP日付とライブラリ検証日付:checkdate()関数は日付をよく検証することができ、提供された日付が有効であればtrueを返し、そうでなければfalseを返す.
<?php
if (checkdate( 2,29 ,2007)) {
echo '    ' ;
} else {
echo '     ' ;
}
?>

フォーマット時間と日付:date()関数は、定義された命令に従ってフォーマット時間と日付の文字列形式を返します.すべてのフォーマットパラメータは、マニュアルを参照してください.
<?php
echo date('Y-m-d H:i:sa'); //          
echo date('         :Y/m/d H:i:sa'); //          
?>

詳細な時間情報を表示:gettimeof day()関数は、現在の時間に関連する要素からなる関連配列を返します.
<?php
print_r(gettimeofday()); //       (1)
?>

タイムスタンプを友好的な値に変換:getdate()関数はタイムスタンプを受け入れ、その各部分からなる関連配列を返します.パラメータを与えない場合は、現在の時刻と日付を返します.
<?php
print_r(getdate(1184557366));
?>

現在のタイムスタンプの取得:time()関数は、現在のタイムスタンプを取得し、タイムスタンプの値を設定できます.
<?php
echo date('Y-m-d H:i:s' ,time()+(7 * 24 * 60 * 60 ));
?>

特定のタイムスタンプを取得:mktime()関数は、指定した日付時間のタイムスタンプを生成します.
<?php
echo mktime( 14, 14,14, 11,11 ,2007);
echo date('Y-m-d H:i:s' ,mktime( 14 ,14,14 ,11, 11,2007));
?>

けいさんじかんさ
<?php
$now = time();
$taxday = mktime( 0, 0,0,7, 17,2010);
echo round(($taxday - $now )/60 /60);
?>

日付をタイムスタンプに変換:strtotime()は、読み取り可能な日付をUnixタイムスタンプに変換します.
<?php
echo strtotime( '2007-10-31 14:31:33');
?>

けいさんじかんさ
<?php
echo (strtotime('2007-10-31 14:31:33' ) - strtotime('2007-10-31 11:31:33'))/ 60 /60;
?>

現在のファイルの最終変更時間の取得:getlastmod()は、現在のファイルの最終変更時間のタイムスタンプを取得します.
<?php
echo date('Y-m-d H:i:s' ,getlastmod());
?>

タイムゾーンとGMT/UTCの設定:phpを変更する.iniファイルの設定は、[date]の下にあります.date.timezone=オプションで、このアイテムをdateに変更します.timezone=Asia/Shhanghai、apacheサーバを再起動します.putenv()関数は、現在のデフォルトタイムゾーンを設定します.
<?php
putenv('TZ=Asia/Shanghai' );
echo date('Y-m-d H:i:s' );
?>

 date_default_timezone_set()は、現在のデフォルトタイムゾーンを設定できます.date_default_timezone_ get()は、現在のデフォルトタイムゾーンを取得できます.
<?php
date_default_timezone_set('Asia/Shanghai' );
echo date('Y-m-d H:i:s' );
?>

ローカル時間localtime()関数を取得すると、ローカル時間データを取得し、配列を返します.
<?php
date_default_timezone_set('Asia/Shanghai' );
print_r(localtime());
print_r(localtime(time(), true));
?>

ページ・スクリプトの実行時間の計算:現在のUNIXタイムスタンプとマイクロ秒数を返すmicrotime()関数.返されるフォーマットがmsec secの文字列です.secは現在のUNIXタイムスタンプで、msecはマイクロ秒数です.
<?php
function fntime() {
list($msec, $sec ) = explode(' ' , microtime());
return $msec +$sec ;
}
$start_time = fntime();
for ($i=0;$i<1000000 ;$i++) {
//
}
$end_time = fntime();
echo round($end_time - $start_time,4 );
?>