(PHP 5 >= 5.3.0)
DateTime::createFromFormat — 指定した書式でフォーマットした新しい DateTime オブジェクトを返す
オブジェクト指向型
手続き型
指定した書式でフォーマットした新しい DateTime オブジェクトを返します。
date() が理解できる書式。
format に文字 ! が含まれない場合は、作成した時刻値のうち format で指定されていない部分を 現在のシステム時刻で初期化します。
format に文字 ! が含まれる場合は、作成した時刻値のうち format で指定されていない部分と ! の左側の部分を Unix エポックの対応する箇所の値で初期化します。
Unix エポックは 1970-01-01 00:00:00 です。
時刻を表す文字列。
指定したいタイムゾーンを表す DateTimeZone オブジェクト。
新しい DateTime のインスタンス、失敗した場合に FALSE を返します。
例1 DateTime::createFromFormat() の例
オブジェクト指向型
<?php
$date = DateTime::createFromFormat('j-M-Y', '15-Feb-2009');
echo $date->format('Y-m-d');
?>
手続き型
<?php
$date = date_create_from_format('j-M-Y', '15-Feb-2009');
echo date_format($date, 'Y-m-d');
?>
上の例の出力は以下となります。
2009-02-15
例2 DateTime::createFromFormat() の複雑な例
<?php
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