Как я могу отформатировать метки времени со встроенным символом `T`? - PullRequest
7 голосов
/ 13 февраля 2010

Мне нужно отформатировать метку времени в формате 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 ]

20 голосов
/ 13 февраля 2010

Ваш формат должен быть: "c"

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

С Руководство по PHP :

Format Descriptions                        Example
c      ISO 8601 date (added in PHP 5)   2004-02-12T15:19:21+00:00
6 голосов
/ 13 февраля 2010

Если вам нужно вставить символ, который не следует интерпретировать, поставьте перед ним обратную косую черту:

$time = date("y-m-d\TH:i:s", time());
1 голос
/ 04 октября 2013

DATE_ATOM предоставляется для этого формата:

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

Выход:

2013-04-10T09:10:30-04:00
1 голос
/ 13 февраля 2010

Вы можете отдельно отформатировать дату и время, а затем объединить две части с помощью "T":

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