関数・クラス解説
DateTime::createFromFormat
date_create_from_format
version:PHP 5 >= 5.3.0, PHP 7 (公式)指定した書式で時刻文字列をパースする
公式リファレンス
書式
public static DateTime::createFromFormat ( string $format , string $datetime [, DateTimeZone $timezone ] ) : DateTime|false
date_create_from_format ( string $format , string $datetime [, DateTimeZone $timezone ] ) : DateTime|false
説明
オブジェクト指向型
手続き型
新しい DateTime オブジェクトを返します。 このオブジェクトは、datetime で指定した文字列を format で指定した書式に沿って解釈した時刻を表します。
パラメータ
- format
- 書式を文字列で渡します。以下の書式オプションを参照ください。 大半は、date() で使える文字と同じです。
format パラメータに渡せる文字 format 文字 説明 取りうる値の例 日 --- --- d および j 2桁の日付。先頭のゼロを含むものと含まないもの 01 から 31 あるいは 1 から 31 D および l 曜日を表す文字列 Mon から Sun あるいは Sunday から Saturday S 日付の後につける英語の接尾辞。二文字。処理中には無視されます。 st、nd、rd あるいは th z 年始からの通算日数 (最初は 0) 0 から 365 月 --- --- F および M 月を表す文字列。January あるいは Sept など January から December あるいは Jan から Dec m および n 月を表す数値。先頭のゼロを含むものと含まないもの 01 から 12 あるいは 1 から 12 年 --- --- Y 4 桁の数値で表した年 例: 1999 あるいは 2003 y 2 桁の数値で表した年 (1970年から2069年の間だとみなされます) 例: 99 あるいは 03 (それぞれ、 1999 および 2003 と見なされます) 時刻 --- --- a および A 午前および午後 am あるいは pm g および h 12 時間制での時間。先頭のゼロを含むものと含まないもの 1 から 12 あるいは 01 から 12 G and H 24 時間制での時間。先頭のゼロを含むものと含まないもの 0 から 23 あるいは 00 から 23 i 分。先頭のゼロを含む 00 から 59 s 秒。先頭のゼロを含む 00 から 59 v ミリ秒。(最大 3桁) 例: 12, 345 u マイクロ秒 (最大 6 桁) 例: 45, 654321 タイムゾーン --- --- e、O、 P および T タイムゾーン識別子、UTC からの時差 (時間単位)、 UTC からの時差 (コロン区切りでの時間と分)、そしてタイムゾーンの短縮形 例: UTC、GMT、 Atlantic/Azores、 +0200、+02:00、 EST、MDT 完全な日付/時刻 --- --- U Unix エポック (January 1 1970 00:00:00 GMT) からの経過秒数 例: 1292177455 空白および区切り --- --- (空白) 空白 1 文字あるいはタブ 1 文字 例: # 次の区切り文字のいずれか: ;, :, /, ., ,, -, (, ) 例: / ;, :, /, ., ,, -, (, ) 指定した文字 例: - ? ランダムなバイト 例: ^ (UTF-8 文字の場合は複数の ? が必要になるでしょう。この場合、おそらく * を使うと要望が満たせるはずです) * 次の区切り文字あるいは数字までのランダムなバイト列 例: Y-*-d の中の * は、文字列 2009-aWord-08 の中の aWord にマッチします ! すべてのフィールド (年、月、日、時、分、秒、マイクロ秒およびタイムゾーン情報) を Unix エポックにリセットする ! がなければ、すべてのフィールドは現在の日時に設定されます。 | まだパースされていないすべてのフィールド (年、月、日、時、分、秒、マイクロ秒およびタイムゾーン情報) を Unix エポックにリセットする Y-m-d| は、文字列をパースした結果から年月日を設定し 時分秒には 0 を設定します。 + この文字があると、文字列のそれ以降のデータではエラーが発生せず、 かわりに警告を発生させる それ以降のデータが存在したかどうかを調べるには DateTime::getLastErrors() を使います。 - datetime
- 時刻を表す文字列。
- timezone
- 指定したいタイムゾーンを表す DateTimeZone オブジェクト。 timezone を省略し、かつ datetime にタイムゾーンが含まれない場合は、 現在のタイムゾーンを使います。
注意: datetime パラメータが UNIX タイムスタンプ (例: 946684800) だったり、タイムゾーンを含んでいたり (例: 2010-01-28T15:00:00+02:00) する場合は、 timezone パラメータや現在のタイムゾーンは無視します。
返値
新しい DateTime のインスタンス、失敗した場合に FALSE を返します。
更新履歴
バージョン | 説明 |
---|---|
7.3.0 | 書式文字列 v が追加されました。 |
サンプル
例1 DateTime::createFromFormat() の例
オブジェクト指向型
$date = DateTime::createFromFormat('j-M-Y', '15-Feb-2009');
echo $date->format('Y-m-d');
手続き型
$date = date_create_from_format('j-M-Y', '15-Feb-2009');
echo date_format($date, 'Y-m-d');
上の例の出力は以下となります。
2009-02-15
例2 DateTime::createFromFormat() の複雑な例
echo 'Current time: ' . date('Y-m-d H:i:s') . "\n";
$format = 'Y-m-d';
$date = DateTime::createFromFormat($format, '2009-02-15');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";
$format = 'Y-m-d H:i:s';
$date = DateTime::createFromFormat($format, '2009-02-15 15:16:17');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";
$format = 'Y-m-!d H:i:s';
$date = DateTime::createFromFormat($format, '2009-02-15 15:16:17');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";
$format = '!d';
$date = DateTime::createFromFormat($format, '15');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";
上の例の出力は、たとえば以下のようになります。
Current time: 2010-04-23 10:29:35
Format: Y-m-d; 2009-02-15 10:29:35
Format: Y-m-d H:i:s; 2009-02-15 15:16:17
Format: Y-m-!d H:i:s; 1970-01-15 15:16:17
Format: !d; 1970-01-15 00:00:00
例3 リテラル文字を含む書式文字列
echo DateTime::createFromFormat('H\h i\m s\s','23h 15m 03s')->format('H:i:s');
上の例の出力は、たとえば以下のようになります。
23:15:03
参考
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール