ホームページ > バックエンド開発 > PHPチュートリアル > php_PHP チュートリアルの 2 つの日付比較プログラム コード

php_PHP チュートリアルの 2 つの日付比較プログラム コード

WBOY
リリース: 2016-07-13 10:55:30
オリジナル
865 人が閲覧しました

実際、PHP で 2 つの日付を比較する方法はたくさんあります。私が使用する最も一般的な方法は、strtotime 関数を使用して日付を数値に変換し、それを加算および減算することです。以下の例を見てみましょう。

コードは次のとおりです
コードは次のとおりです コードをコピー

/*
※作者:作者は分かりません
* 日付: 2008-4-13
* 機能: 2 つの日付間の時差を計算します
※備考:基本的にプログラムコードは修正せず、記述を統一しコメントを入れただけです // Mancharo
*/

// 比較する 2 つの日付を定義します
$Date_1="2008-7-15";
$Date_2="2006 年 7 月 14 日";

//日付を配列に変換してタイムスタンプを作成します

$Date_List_1=explode("-",$Date_1); $Date_List_2=explode("-",$Date_2);
// タイムスタンプを作成します
$d1=mktime(0,0,0,$Date_List_1[1],$Date_List_1[2],$Date_List_1[0]); $d2=mktime(0,0,0,$Date_List_2[1],$Date_List_2[2],$Date_List_2[0]);

// 日付の比較

$Days=round(($d1-$d2)/3600/24);
//結果を出力する
「$Days 日」をエコーし​​ます

?>



方法 2

コードをコピー

/* ※作者:まんちゃろ * 日付: 2008-4-13 * 機能: 2 つの日付間の時差を計算します
*/


// PHP の組み込み関数 strtotime を使用して、日付をタイムスタンプとしてフォーマットします
$date1_ts = strtotime("2008-7-15");
$date2_ts = strtotime("2006-7-14");

// 日付の比較

$days=round(($date1_ts-$date2_ts)/3600/24);


//結果を出力する
echo "$days days";

?>


特徴

手順

checkdate($month, $date, $year)

この関数は、適用された値が有効な日付を形成する場合に true を返します。たとえば、エラー日が 2005 年 2 月 31 日の場合、この関数は false を返します。

                 

この関数を使用すると、計算に使用したりデータベースに保存したりする前に、日付をチェックして有効にすることができます。

                 

// false を返します

                 

エコーチェック日(2005/2/30) ?

                 

「有効」:

                 

「無効」;

                 

                 

// true を返します

                 

echo checkdate(4,6,2010) ? "有効" :

                 

「無効」;

                 

?>

getdate($ts)

引数がない場合、この関数は結合された配列で現在の日付と時刻を返します。配列内の各要素は、日付/時刻値の特定のコンポーネントを表します。オプションのタイムスタンプ引数を関数に送信して、タイムスタンプに対応する日付/時刻値を取得できます。

                 

この関数を適用して、一連の離散的で簡単に分離できる日付/時刻値を取得します。

                 

//

のタイムスタンプを返します                  

13:15:23

                 

2006年6月7日

                 

echo mktime(13,15,23,6,7,2006);

                 

?>

mktime($時間,

                 

$分、

                 

$秒、

                 

$月、$日、

                 

$年)

この関数は getdate() の逆のことを行います。つまり、一連の日付と時刻の値 (グリニッジ標準時 1970 年 1 月 1 日から経過した秒数) から UNIX タイムスタンプを生成します。引数が使用されない場合、現在の時刻の UNIX タイムスタンプが生成されます。

                 

この関数を使用して、即時時刻の UNIX タイムスタンプを取得します。このようなタイムスタンプは、多くのデータベースやプログラミング言語で一般的に使用されています。

                 

//

のタイムスタンプを返します                  

13:15:23

                 

2006年6月7日

                 

echo mktime(13,15,23,6,7,2006);

                 

?>

日付($format, $ts)

この関数は、UNIX タイムスタンプを人間が判読できる日付文字列にフォーマットします。これは、PHP 日付/時刻 API の中で最も強力な関数であり、整数の時刻ラベルを一連の補正値の必要な文字列形式に変換するために使用できます。

                 

                 

表示用に時刻または日付を書式設定する場合にこの関数を適用します。

                 

//現在の日付をフォーマットします

                 

// 「2005 年 9 月 13 日 01:16 PM」を返します

                 

echo date("d-M-Y h:i A", mktime

)                  

());

                 

?>

ストラトタイム ($str)

この関数は、人間が判読できる英語の日付/時刻文字列を UNIX 時刻ラベルに変換します。

                 

この関数を適用して、標準化されていない日付/時刻文字列を標準の互換性のある UNIX タイムスタンプに変換します。

                 

// 13-Sep-05 を返します

                 

エコー日付("d-M-y",

)                  

strtotime("今日"));

                 

                 

// 14-Sep-05 を返します

                 

エコー日付("d-M-y",

)                  

strtotime("明日"));

                 

                 

// 16-Sep-05 を返します

                 

echo date("d-M-y", strtotime("今日 +3

                 

日"));

                 

?>

strftime ($format, $ts)

前の setlocale() 関数で定義されているように、この関数は UNIX タイムスタンプを現在の環境に適した日付文字列にフォーマットします。

                 

この関数を適用して、現在の環境と互換性のある日付文字列を作成します。

                 

// ロケールをフランスに設定します (on

)                  

Windows)

                 

setlocale(LC_TIME, "fra_fra");

                 

                 

// 月/日の名前をフォーマットします

                 

// ロケール設定による

                 

// 「9 月」を返します、そして

                 

「マルディ」

                 

echo strftime("月: %B ");

                 

echo strftime("日: %A ");

                 

?>

マイクロタイム()

この関数は、GMT 時間の 1970 年 1 月 1 日から経過した秒数とマイクロ秒数を返します。

                 

コードの特定のブロックをベンチマークするときにこの関数を適用して、その実行時間を正確に測定します。

                 

//開始値を取得します

                 

$start = microtime();

                 

                 

// コードを実行します

                 

for ($x=0; $x                  

???$null = $x * $x;

                 

}

                 

                 

//終了値を取得する

                 

$end = microtime();

                 

                 

// にかかった時間を計算します

                 

コード

                 

実行

                 

echo "経過時間: " . ($end -

)                  

                 

$start) ." 秒";

                 

?>

gmmktime

                 

($時間、

                 

$分、

                 

$秒、

                 

$月、$日、

                 

$年)

この関数は、GMT 時間で表現された一連の日付と時刻の値から UNIX タイムスタンプを生成します。引数が使用されない場合、現在の GMT 時間の UNIX タイムスタンプが生成されます。

                 

この関数を使用して、GMT リアルタイム時間の UNIX 時間ラベルを取得します。

                 

//

のタイムスタンプを返します                  

12:25:23

                 

2006年7月9日

                 

エコーgmmktime

                 

(12,25,23,7,9,2006);

                 

?>

gmdate ($format, $ts)

この関数は、UNIX タイムスタンプを人間が判読できる日付文字列にフォーマットします。この日付文字列は GMT (現地時間ではない) で表されます。

                 

タイムラベルを表すためにGMTを使用する場合にこの関数を適用します。

                 

// 現在の日付を GMT にフォーマットします

                 

// は「2005 年 9 月 13 日 08:32

」を返します                  

午前"

                 

echo gmdate("d-M-Y h:i A",

                 

mktime());

                 

?>

date_default_

                 

タイムゾーンセット

                 

($tz)と

                 

date_default_

                 

timezone_get()

この関数は、その後のすべての日付/時刻関数呼び出しのデフォルトのタイムゾーンを設定および復元します。

                 

: この関数は PHP 5.1 以降でのみ有効です。

                 

この機能は、今後の時間操作のためにタイムゾーンを設定するための便利なショートカットです。

                 

// タイムゾーンを UTC に設定します

                 

date_default_timezone_set

                 

('UTC');

                 

?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632222.html技術記事実際、PHP で 2 つの日付を比較する方法はたくさんあります。私が使用する最も一般的な方法は、strtotime 関数を使用して日付を数値に変換し、それを加算および減算することです。以下に例を示します。 コードは次のとおりです...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート