2010-02-13 4 views
5

Ich muss einen Zeitstempel im ISO 8601-Format formatieren (z. B. 2001-10-26T21:32:52). Wenn ich die date() Funktion in PHP verwende, ersetzt es T mit der Zeitzone (wie es soll).Wie kann ich Zeitstempel mit eingebettetem `T`-Zeichen formatieren?

Der Befehl Ich verwende ist:

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

Dies erzeugt: 10-02-13EST10:21:03

Wie bekomme ich es mit EST eine tatsächliche T und nicht ersetzen einfügen?

Antwort

17

Ihr Format shoule sein: "c"

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

Von PHP manual:

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

Dies tat es. Danke auch für die Formatbeschreibung. – pgtips

+2

Wenn Sie 'DateTime' verwenden, ist' $ date-> format (DateTime :: ATOM) 'was Sie wollen. – Pitel

+1

Sie können auch 'date (" c ")' verwenden, da 'date()' standardmäßig auf 'time()' gesetzt wird, wenn das zweite Argument nicht angegeben wird. – kfriend

1

Sie das Datum und die Zeit separat Teile formatiert konnte, dann verketten die beiden Teile mit "T":

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

Wenn Sie ein Zeichen einfügen müssen, das nicht interpretiert werden soll, p zurückzuweichen es mit einem Backslash:

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

DATE_ATOM für dieses Format zur Verfügung gestellt:

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

Ausgang:

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