downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

date_get_last_errors> <date_diff
Last updated: Fri, 06 Nov 2009

view this page in

date_format

(PHP 5 >= 5.2.0)

date_formatのエイリアス DateTime::format

説明

この関数は次の関数のエイリアスです。 DateTime::format



date_get_last_errors> <date_diff
Last updated: Fri, 06 Nov 2009
 
add a note add a note User Contributed Notes
date_format
Andrew Gregory
22-Jul-2009 07:52
Requirements: PHP5+

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:

<?php

$current_date
= gmDate("Y-m-d\TH:i:s\Z");

?>

Enjoy!
Mike C
08-Jul-2008 02:23
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 .
Matt Walsh
05-May-2007 02: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");
   }
?>

date_get_last_errors> <date_diff
Last updated: Fri, 06 Nov 2009
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites