PHPのdate_parse()関数とは?日付を詳細に解析して連想配列で取得する方法
PHPのdate_parse()関数は、指定された日付文字列を解析し、その日付に関する詳細な情報を連想配列として返す関数です。年・月・日だけでなく、時・分・秒や小数秒まで取得できるため、日付データの検証や加工に便利な関数です。
構文
date_parse(date)
パラメータ
date − 解析対象となる日付を表す文字列を指定します。「YYYY-MM-DD HH:MM:SS」のような標準形式のほか、「+2 week」などの相対的な日付表現も指定可能です。
戻り値
date_parse()関数は、指定された日付に関する詳細な情報を格納した連想配列を返します。配列には以下のようなキーが含まれます。
year / month / day − 年・月・日の情報
hour / minute / second / fraction − 時・分・秒および小数秒の情報
warning_count / warnings − 警告の件数と内容
error_count / errors − エラーの件数と内容
is_localtime – ローカル時刻かどうかの判定結果
relative − 相対的な日付が指定された場合の差分情報
使用例1:基本的な日付の解析
まずは、基本的な日付文字列を解析してみましょう。
<?php
print_r(date_parse("2017-11-08 11:10:40.5"));
?>
出力結果
Array ( [year] => 2017 [month] => 11 [day] => 8 [hour] => 11 [minute] => 10 [second] => 40 [fraction] => 0.5 [warning_count] => 0 [warnings] => Array ( ) [error_count] => 0 [errors] => Array ( ) [is_localtime] => )
このように、日付文字列から年・月・日・時刻・小数秒がそれぞれ分解され、連想配列として取得できていることがわかります。
使用例2:相対的な日付を含む解析
次に、「+2 week」や「+2 hour」のように相対的な期間を含む日付文字列を解析した例を見てみましょう。
<?php
print_r(date_parse("2017-10-10 11:00:00.5 +2 week +2 hour"));
?>
出力結果
Array ( [year] => 2017 [month] => 10 [day] => 10 [hour] => 11 [minute] => 0 [second] => 0 [fraction] => 0.5 [warning_count] => 0 [warnings] => Array ( ) [error_count] => 0 [errors] => Array ( ) [is_localtime] => [relative] => Array ( [year] => 0 [month] => 0 [day] => 14 [hour] => 2 [minute] => 0 [second] => 0 ) )
相対的な指定がある場合には、relativeキーに差分情報が格納されます。この例では「+2 week」が14日(day => 14)、「+2 hour」が2時間(hour => 2)として解析されていることが確認できます。
まとめ
date_parse()関数を使うことで、日付文字列を簡単に分解し、構成要素ごとの詳細な情報を取得できます。また、エラーや警告の有無もあわせて確認できるため、ユーザー入力など不確実な日付文字列のバリデーションにも活用できる便利な関数です。
-
【PHP】array_rand()関数の使い方|配列からランダムなキーを取得する方法
array_rand() 関数は、配列から1つ以上のランダムなキーを取得するためのPHP組み込み関数です。配列の中から要素を無作為に選びたい場合に便利で、くじ引きやシャッフル表示などの実装によく使われます。 基本構文 array_rand(array $array, int $num = 1) パラメータ arr(第1引数):対象となる配列を指定します。 count(第2引数):取得したいランダムキーの数を指定します。省略した場合はデフォルト値の 1 が適用されます。 戻り値 array_rand() 関数は、選択されたランダムなキーを返します。 第2引数が 1 の場合(または省略した場
-
PHPのarray()関数とは?配列の作成方法をわかりやすく解説
PHPのarray()関数は、配列を作成するための関数です。PHPにおける配列には、主に以下の3種類が存在します。インデックス配列 − 数値インデックス(0から始まる番号)で要素を管理する配列連想配列 − 文字列などの名前付きキーで要素を管理する配列多次元配列 − 配列の中に1つ以上の配列を含む、入れ子構造の配列構文// 数値インデックスを持つ配列(インデックス配列) array(value1, value2, ...); // 名前付きキーを持つ配列(連想配列) array(key1 => value1, key2 => value2, ...)パラメータvalue − 配列に