Discussion:
Which function returns a correct ISO8601 date?
Simon Schick
2013-09-07 12:47:00 UTC
Permalink
Hi, all

Some days ago, I needed a date, formatted as date("c") ...

To be a bit more object-oriented, I worked with an instance of
DateTime. My first thought was: "As the documenting for date() defines
'c' as ISO8601, I can take the constant provided in the DateTime
object ... right?" ... and that was wrong.

Here's a code-example:

date("c");
// 2013-09-07T12:40:25+00:00

date(DateTime::ISO8601);
// 2013-09-07T12:40:25+0000

-> Take special care to the notation of the timezone.

The method date("c") actually formats a date, fitting to the format
defined in the constant DateTime::ATOM.

Are both formats (with and without colon) valid for ISO8601, or is the
documentation for the method date() wrong?

Bye,
Simon

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Alessandro Pellizzari
2013-09-07 15:29:33 UTC
Permalink
On Sat, 07 Sep 2013 14:47:00 +0200, Simon Schick wrote:

> The method date("c") actually formats a date, fitting to the format
> defined in the constant DateTime::ATOM.
>
> Are both formats (with and without colon) valid for ISO8601, or is the
> documentation for the method date() wrong?

Yes:

http://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators

Bye.



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Simon Schick
2013-09-07 17:57:06 UTC
Permalink
Hi, Alessandro

Would it be worth noting somewhere, that these two implementations of
ISO8601 differ? Because I needed the DateTime::ATOM way to save the
timezone ... Even so the other one was also about ISO 8601 ...

My system is working towards a search-engine called ElasticSearch.
This one makes use of a Java method to format a date. This one is
defined here:
http://joda-time.sourceforge.net/api-release/org/joda/time/format/ISODateTimeFormat.html#dateOptionalTimeParser%28%29

The definition for a time-offset is defined like this:
offset = 'Z' | (('+' | '-') HH [':' mm [':' ss [('.' | ',') SSS]]])

Is there a format, you know of, that makes this difference (colon or
not) bullet-prove?
Bye,
Simon


On Sat, Sep 7, 2013 at 5:29 PM, Alessandro Pellizzari <***@amiran.it> wrote:
> On Sat, 07 Sep 2013 14:47:00 +0200, Simon Schick wrote:
>
>> The method date("c") actually formats a date, fitting to the format
>> defined in the constant DateTime::ATOM.
>>
>> Are both formats (with and without colon) valid for ISO8601, or is the
>> documentation for the method date() wrong?
>
> Yes:
>
> http://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators
>
> Bye.
>
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Loading...