日期限制PHP

时间:2014-01-03 14:50:33

标签: php datetime

我正在尝试将时间与给定的字符串日期和时间分开。时间。我只是尝试了以下示例。

$time = '2014-01-20 10:45:45';
echo '<br>'.$finalTime = date("H:i:s",strtotime($time));
echo '<br>'.$date = date("d F Y",strtotime($time));

我得到了正确的日期和时间。

10:45:45
20 January 2014

但是当我尝试使用给定的字符串时,没有正确的结果。

$time = '1899-12-30 19:30:00';
echo '<br>'.$finalTime = date("H:i:s",strtotime($time));
echo '<br>'.$date = date("d F Y",strtotime($time));

PHP总是在结果后返回给我。

00:00:00
01 January 1970

我不确定是否对未返回1899的日期函数有任何限制。是这样的吗?

2 个答案:

答案 0 :(得分:3)

您的日期早于unix时代。 DateTime()允许您解决此问题。

$dt = new DateTime("1899-12-30 19:30:00");
echo $dt->format("d F Y");
echo $dt->format("h:i:s");

答案 1 :(得分:2)

使用DateTimeDateTime::format()

$time = '1899-12-30 19:30:00';
$dt = new DateTime($time);
echo $dt->format('d F Y H:i:s');

工作示例:http://3v4l.org/fM22Z

strtotime()方法受到Unix纪元的限制,即1970年1月1日。

更新:正如下面的Mark评论所示,您的代码一直回到1901(作为负时间戳),请参见此处:http://3v4l.org/CSJte < / p>