note 74930 modified in function.date-format by danbrown
| From: | danbrown@php.net | Date: | Sun, 20 Jul 2008 02:34:03 +0000 |
| Subject: | note 74930 modified in function.date-format by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-141968@lists.php.net to get a copy of this message | ||
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");
}
?>
--was--
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:
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");
}
http://php.net/manual/en/function.date-format.php