9

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

我正在使用的命令是:

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

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

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

4

4 回答 4

22

你的格式应该是:“c”

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

来自PHP 手册

Format Descriptions                        Example
c      ISO 8601 date (added in PHP 5)   2004-02-12T15:19:21+00:00
于 2010-02-13T15:28:58.077 回答
12

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

$time = date("y-m-d\TH:i:s", time());
于 2010-02-13T15:31:29.303 回答
1

您可以分别格式化日期和时间部分,然后将这两个部分与"T"

<?php
 $time = time(); 
 $time = date( "y-m-d",$time )."T".date( "H:i:s", $time );
?>
于 2010-02-13T15:29:30.483 回答
1

DATE_ATOM为这种格式提供:

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

输出:

2013-04-10T09:10:30-04:00
于 2013-10-04T13:48:09.503 回答