Description

User Contributed Notes 3 notes

To expand on Matt Walsh's example, a simple way to get eBay, or Amazon, web service timestamps is as follows:

<?php

$current_time = urlEncode(subStr(date("c"), 0, 19)."Z");

?>

In other words, take the date/time of now (in ISO 8601 format), discard the trailing Daylight Savings Time specifier, add a "Z" where the DST was and urlEncode the whole thing to convert the time's colons for REST requests (required for amazon, not sure about eBay).

Another way might be to create your own timestamp:

<?php

$current_time = urlEncode(date("Y-m-d")."T".date("H:i:s")."Z");

?>

This way however takes a little more coding on the line.

As far as performance goes, I'm not sure which may be quicker. I just like things to work and work well, don't much care for how fast they are as long as they get the job done :)

A much simpler way to get the eBay, or Amazon, web service timestamp is as follows:

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.