2010-02-13 31 views
5

Tôi cần định dạng dấu thời gian ở định dạng ISO 8601 (ví dụ: 2001-10-26T21:32:52). Khi tôi sử dụng hàm date() trong PHP, nó thay thế T bằng Múi giờ (vì nó được cho là phải làm).Làm cách nào để định dạng dấu thời gian bằng ký tự `T` được nhúng?

Lệnh Tôi đang sử dụng là:

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

này tạo ra: 10-02-13EST10:21:03

Làm thế nào để có được nó để chèn một thực tế T và không thay thế với EST?

Trả lời

17

shoule định dạng của bạn là: "c"

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

Từ PHP manual:

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

này đã làm nó. Cảm ơn mô tả định dạng quá. – pgtips

+2

Nếu bạn đang sử dụng 'DateTime', sau đó' $ date-> format (DateTime :: ATOM) 'là những gì bạn muốn. – Pitel

+1

Ngoài ra, bạn chỉ có thể sử dụng 'date (" c ")', như 'date()' sẽ mặc định là 'time()', nếu arg thứ hai không được cung cấp. – kfriend

1

Bạn có thể định dạng các phần ngày và thời gian riêng rẽ, sau đó nối hai phần với "T":

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

Nếu bạn cần chèn một ký tự không được diễn giải, p rút nó với một dấu chéo ngược:

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

DATE_ATOM được cung cấp cho định dạng này:

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

Output:

2013-04-10T09:10:30-04:00 
Các vấn đề liên quan