2014-04-16 42 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'); 
相关问题