2010-02-13 9 views
5

Potrzebuję sformatować znacznik czasu w formacie ISO 8601 (np. 2001-10-26T21:32:52). Kiedy używam funkcji date() w PHP, zastępuje ona T strefą czasową (tak jak powinna).Jak mogę formatować znaczniki czasu z osadzonym znakiem `T`?

Polecenie używam to:

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

ta produkuje: 10-02-13EST10:21:03

Jak mogę zmusić go do wstawienia rzeczywiste T a nie zastąpić EST?

Odpowiedz

17

formatu shoule być: "c"

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

Od PHP manual:

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

to zrobił. Dziękuję również za opis formatu. – pgtips

+2

Jeśli używasz 'DateTime', to jest to, czego potrzebujesz,' $ date-> format (DateTime :: ATOM). – Pitel

+1

Możesz także użyć 'date (" c ")', ponieważ 'date()' będzie domyślnie 'time()', jeśli drugi argument nie zostanie podany. – kfriend

1

Można formatować części daty i czasu oddzielnie, a następnie złączyć dwie części z "T":

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

Jeśli musisz wstawić znak, którego nie należy interpretować, p oddalać go odwrotnym ukośnikiem:

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

DATE_ATOM jest dla tego formatu:

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

wyjściowa:

2013-04-10T09:10:30-04:00 
Powiązane problemy