Question

I need to format a timestamp in ISO 8601 format (e.g. 2001-10-26T21:32:52). When I use the date() function in PHP, it replaces T with the Timezone (as it is supposed to do).

The command I'm using is:

$time = date("y-m-dTH:i:s", time());

This produces: 10-02-13EST10:21:03

How do I get it to insert an actual T and not replace with EST?

Was it helpful?

Solution

Your format shoule be : "c"

$time = date("c", time());

From PHP manual:

Format Descriptions                        Example
c      ISO 8601 date (added in PHP 5)   2004-02-12T15:19:21+00:00

OTHER TIPS

If you need to insert a character which should not be interpreted, precede it with a backslash:

$time = date("y-m-d\TH:i:s", time());

You could format the date and time parts seperately, then concatenate the two parts with "T":

<?php
 $time = time(); 
 $time = date( "y-m-d",$time )."T".date( "H:i:s", $time );
?>

DATE_ATOM is provided for this format:

$theStart_date = date(DATE_ATOM, strtotime($start_date));

Output:

2013-04-10T09:10:30-04:00
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top