PHP:如何使用date而不是DateTime创建纪元(1970)之前的日期?

PHP:如何使用date而不是DateTime创建纪元(1970)之前的日期?,php,date,datetime,timestamp,epoch,Php,Date,Datetime,Timestamp,Epoch,在我的PHP脚本中,我有一个处理生日的函数,如下所示: $dateTime = \DateTime::createFromFormat('U', $time); 问题是它返回的false带有负$time数字(即1970年1月1日之前的日期)。在PHP文档中有一条评论说 请注意,U选项不支持负时间戳(在 1970). 你必须用日期来表示 我不确定如何使用Date获得与DateTime::createFromFormat()相同的结果。有人知道如何做吗?如果您只需要将UNIX时间戳格式化为可读日期

在我的PHP脚本中,我有一个处理生日的函数,如下所示:

$dateTime = \DateTime::createFromFormat('U', $time);
问题是它返回的
false
带有负$time数字(即1970年1月1日之前的日期)。在PHP文档中有一条评论说

请注意,U选项不支持负时间戳(在 1970). 你必须用日期来表示


我不确定如何使用Date获得与
DateTime::createFromFormat()相同的结果。有人知道如何做吗?

如果您只需要将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');

$dateTime=newdatetime(@$time”)应该可以做到这一点