2010-03-01 109 views

回答

2

可以使用DateTime

$dateTime = new DateTime(); 
$dateTime.setDate(24, 12, 2010); 

$output = $dateTime.format(DateTime::W3C); 

// Output now is your date in W3C format. 
+0

Unfort這不符合Solr的工作。輸出將是「2012-11-28T17:21:11 + 0100」,這是錯誤的。 – Christian 2014-07-12 13:19:16

+1

另外。 notation在PHP中不存在。 – Christian 2014-07-12 13:21:06

9

這是一個ISO8601格式的日期;以下是你想要的。

gmdate('Y-m-d\TH:i:s\Z', strtotime($date_value)); 
+0

我不會這樣建議,因爲它很容易出錯。更好地提供自己的輸入格式,並使用DateTime :: W3C作爲輸出格式。 – Snake 2010-03-01 09:32:42

+0

如果輸入格式是固定且可預測的,則它是可靠的(例如來自DB)。如果輸入格式來自用戶,則始終需要對其進行重新分析。 – 2010-03-01 09:43:45

0
$date = strtotime('24-12-2010'); 
$new_date = gmDate("Y-m-d\TH:i:s.z\Z",$date); 
5

時間戳你可以做這樣的事情:

$dateTime = new DateTime($myDate); 
$formatted = $dateTime->format("Y-m-d\TH:i:s.z\Z"); 

所提到的解決方案有:

$dateTime->format(DateTime::W3C); 
$dateTime->format(DateTime::ISO8601); 

不返回字符串,如:

2012-11-28T17:21:11+0100 

無法解析,至少使用較新的Solr版本。

如果您需要支持時區,我不會使用gmdate。 DateTime實現做得很好,也可用於函數式編程。