如何使用嵌入的`T`字符格式化时间戳?

时间:2010-02-13 15:27:35

标签: php xsd datetime-format iso8601

我需要格式化ISO 8601格式的时间戳(例如2001-10-26T21:32:52)。当我在PHP中使用date()函数时,它将T替换为时区(正如它应该做的那样)。

我正在使用的命令是:

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

这会产生:10-02-13EST10:21:03

如何让它插入实际T而不是替换为EST

4 个答案:

答案 0 :(得分:19)

您的格式应为:“c”

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

来自PHP manual

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

答案 1 :(得分:6)

如果您需要插入一个不应被解释的字符,请在其前面加上反斜杠:

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

答案 2 :(得分:1)

您可以单独格式化日期和时间部分,然后使用"T"将这两个部分连接起来:

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

答案 3 :(得分:1)

为此格式提供了

DATE_ATOM

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

输出:

2013-04-10T09:10:30-04:00