PHP mktime()适用于1900年前的日期

时间:2011-01-30 20:51:32

标签: php datetime mktime

所以我正在研究这个按日期排序日期的系统。我正在使用制作时间,我一切正常,直到它击中1900年或以下。一切都返回12月24,1644类型的日期。任何人都可以告诉我为什么会发生这种情况并且可能会解决这个问题吗?

这个代码:

//$decades is a string ex: '1950-1960'

$decade_array=explode('-',$decades);

$date_active=date("M-d-Y", mktime(0, 0, 0, 1,1 , trim($decade_array[0]) ));
$date_inactive=date("M-d-Y", mktime(0, 0, 0, 1, 1, trim($decade_array[1]) ));

echo $date_active.' '.$date_inactive;

2 个答案:

答案 0 :(得分:7)

尝试使用DateTime类:

$date = new DateTime("1234-01-01");
echo $date->format("M-d-Y"); // outputs Jan-01-1234

自PHP 5.2以来,DateTime类可用。

如果你有PHP 5.3,请使用DateTime::createFromFormat

$date = DateTime::createFromFormat('Y-m-d', "1234-01-01");
echo $date->format("M-d-Y");

答案 1 :(得分:2)

替代程序功能

date_format(date_create('1234-01-01'), 'M-d-Y');