関数の概要
date_parse_from_format は、PHPで特定の書式に基づいた日付文字列を解析し、その構成要素を連想配列として取得する関数です。
指定したフォーマットに従って文字列を解析するため、柔軟に日付文字列の検証や分割が可能です。WordPressなどPHPを使う環境で、カスタム形式の日付を扱う際に便利です。
パラメータの説明
- format(文字列): 日付/時刻のフォーマットを指定する文字列です。PHPの
date()関数のフォーマットと同様の書式を用います。 - date(文字列): 解析対象の日付文字列です。
formatで指定した書式に従った文字列を渡します。
戻り値
解析結果を連想配列で返します。配列のキーは以下のような構成要素を含みます。
year— 年(数値またはfalse)month— 月(1~12)day— 日(1~31)hour— 時(0~23)minute— 分(0~59)second— 秒(0~59)fraction— 小数秒(浮動小数点)warning_count— 警告の数warnings— 詳細警告の配列error_count— エラーの数errors— 詳細エラーの配列
正常にパースできない場合、エラー情報が含まれます。
使用例
基本的な使い方
<?php
$result = date_parse_from_format('Y-m-d', '2024-06-15');
print_r($result);
?>
この例では「2024-06-15」という文字列を「Y-m-d」形式で解析しています。結果の配列には年・月・日が数値でセットされます。
時刻も含む日付解析
<?php
$result = date_parse_from_format('Y/m/d H:i:s', '2024/06/15 14:30:45');
print_r($result);
?>
年月日だけでなく、時間(14時)、分(30分)、秒(45秒)も正しくパースされます。
パース失敗時のエラーチェック
<?php
$result = date_parse_from_format('Y-m-d', '2024-15-99');
if ($result['error_count'] > 0) {
echo 'エラー: '. implode(', ', $result['errors']);
} else {
print_r($result);
}
?>
不正な日付文字列を指定した際、error_countが0より大きくなり、errors配列に問題の詳細が格納されます。
関連する関数
date_parse– 書式指定なしで日付文字列を解析DateTime::createFromFormat– 書式に基づいてDateTimeオブジェクトを作成strtotime– 英文形式を解釈してUNIXタイムスタンプを取得
まとめ
date_parse_from_formatは、PHPで指定したフォーマットに従って日付文字列を解析する強力な関数です。
カスタム書式の日付入力を扱いたい場合や、日付の妥当性を検証したい場面で特に役立ちます。エラー情報も取得できるため、堅牢な入力チェックにも活用できます。
WordPressのプラグイン開発やテーマカスタマイズで日付処理が必要なときに、ぜひ活用してみてください。
