2

所以我正在研究这个按几十年对日期进行排序的系统。我正在使用制造时间,并且在它达到 1900 年或以下之前,我的一切工作正常。一切都返回 1964 年 12 月 24 日类型的日期之后。其他人可以告诉我为什么会发生这种情况以及可能的解决方案吗?

和代码:

//$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;
4

2 回答 2

7

尝试DateTime上课:

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

DateTime 类从 PHP 5.2 开始可用。

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

$date = DateTime::createFromFormat('Y-m-d', "1234-01-01");
echo $date->format("M-d-Y");
于 2011-01-30T20:57:37.453 回答
2

替代程序功能

date_format(date_create('1234-01-01'), 'M-d-Y');
于 2011-01-30T21:03:26.110 回答