我正在尝试将时间与给定的字符串日期和时间分开。时间。我只是尝试了以下示例。
$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的日期函数有任何限制。是这样的吗?
答案 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)
使用DateTime
和DateTime::format()
:
$time = '1899-12-30 19:30:00';
$dt = new DateTime($time);
echo $dt->format('d F Y H:i:s');
strtotime()
方法受到Unix纪元的限制,即1970年1月1日。
更新:正如下面的Mark评论所示,您的代码将一直回到1901(作为负时间戳),请参见此处:http://3v4l.org/CSJte < / p>