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.1.0)
date_format — Returns date formatted according to given format
Description
string date_format
( DateTime $object
, string $format
)
string DateTime::format
( string $format
)
Parameters
- object
-
Procedural style only: A DateTime object returned by date_create()
- format
-
Format accepted by date().
Return Values
Returns formatted date on success or FALSE on failure.
Examples
Example #1 Displaying the date and time using the procedural form
<?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);
?>
Example #2 Displaying the date and time using the object oriented form
<?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);
?>
?>
The above example will output:
3rd, August 2008 2008-08-03T14:52:10+01:00
date_format
Mike C
07-Jul-2008 10:23
07-Jul-2008 10:23
Matt Walsh
04-May-2007 10:43
04-May-2007 10: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");
}
?>
