If you are studying date_format because you want to format a date, consider the power of date(..) !!!!
the mktime article has an example of adding days to a date of your choice and then formatting it:
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997))
where the 32 is like adding 1 day to the 31st .
date_format
(PHP 5 >= 5.2.0)
date_format — 指定した書式でフォーマットした日付を返す
説明
string date_format
( DateTime $object
, string $format
)
string DateTime::format
( string $format
)
返り値
成功した場合にフォーマット済みの日付、失敗した場合に FALSE を返します。
例
例1 手続き型での日付と時刻の表示
<?php
date_default_timezone_set('Europe/London');
$datetime = date_create('2008-08-03 14:52:10');
echo date_format($datetime, 'jS, F Y') . "\n";
echo date_format($datetime, DATE_ATOM);
?>
例2 オブジェクト指向型での日付と時刻の表示
<?php
date_default_timezone_set('Europe/London');
$datetime = new DateTime('2008-08-03 14:52:10');
echo $datetime->format('jS, F Y') . "\n";
echo $datetime->format(DATE_ATOM);
?>
?>
上の例の出力は以下となります。
3rd, August 2008 2008-08-03T14:52:10+01:00
date_format
Mike C
07-Jul-2008 08:23
07-Jul-2008 08:23
Matt Walsh
04-May-2007 08:43
04-May-2007 08:43
The ISO8601 output format doesn't jive with (at least) what eBay expects in its SOAP transactions. eBay wants a UTC time with a 'Z' suffix. That is, eBay (and I'm guessing other web services) will accept "2007-05-04T17:01:17Z" but not "2007-05-04T17:01:17+0000". As it is, the built-in DateTime::ISO8601 format uses the +0000 timezone specifier even when in a UTC timezone.
As a workaround, I do this:
<?php
function get_ebay_UTC_8601(DateTime $time)
{ $t = clone $time;
$t->setTimezone(new DateTimeZone("UTC"));
return $t->format("Y-m-d\TH:i:s\Z");
}
?>
