2014-04-16 87 views
1

在我的PHP腳本我有一個功能處理生日像這樣:PHP:如何使用日期而不是DateTime在Epoch(1970)之前創建日期?

$dateTime = \DateTime::createFromFormat('U', $time); 

的問題是,這將返回false負$時間數(即前1970年1月1日的日期)。在PHP文檔中有一條評論說,確實

請注意,U選項不支持負時間戳(在 1970之前)。你必須使用日期。

我不確定如何使用Date得到與DateTime::createFromFormat()給出的結果相同的結果。有沒有人有關於如何做到這一點的提示?

+1

'$ dateTime = new DateTime(「@ $ time」);'應該這樣做 –

回答

2

如果你只需要格式化UNIX時間戳作爲一個可讀的日期,date使用簡單:

// make sure to date_default_timezome_set() the timezone you want to format it in 
echo date('Y-m-d H:i:s', -12345); 

如果你想從負UNIX時間戳創建一個DateTime例如,你可以使用這種形式的正則構造函數:

$datetime = new DateTime('@-12345'); 
相關問題