Php 日期未正确排序

Php 日期未正确排序,php,javascript,date,sorting,Php,Javascript,Date,Sorting,可能重复: 我使用了2012年1月24日的格式作为日期表。表格条目如1978年1月24日、2011年2月30日等。我无法更改日期格式,因为数据库中有1000多个条目。代码的问题是我指定的日期通常格式是1956年3月24日等 我不知道如何指定2011年11月21日等的日期格式。请帮助。其他表字段(如name和all)正在排序。怎么办 我的代码是: <th class="table-sortable">Date table-filterable</th> 可筛选的日期表

可能重复:

我使用了2012年1月24日的格式作为日期表。表格条目如1978年1月24日、2011年2月30日等。我无法更改日期格式,因为数据库中有1000多个条目。代码的问题是我指定的日期通常格式是1956年3月24日等

我不知道如何指定2011年11月21日等的日期格式。请帮助。其他表字段(如name和all)正在排序。怎么办

我的代码是:

<th class="table-sortable">Date table-filterable</th>
可筛选的日期表
这是写在php打印语句中的。只有23 5等得到排序,而不是1月至3月等。

如果我的理解是正确的,我想你是在问如何将月份解析为可插入值-这意味着这不是真正的排序(字母顺序),更多的是排序(解析)

如果是这样,那么我提出以下解决方案

$data = '30/Feb/2012';               // non-existent date, by the way
$dateArray = explode('/', $data);    // array('30', 'Feb', '2012')
$month = $dateArray[1];              // 'Feb'
$abbreviations = array('Jan', 'Feb', 'Mar', ...);
$key = array_search($month, $abbreviations);
$numericalMonth = $key + 1;
这将给你一个月的时间,从1到12,然后可以进行排序

…如果我没弄错你的问题

编辑

如果希望将其作为输出进行排序,则可以重新格式化:

$newDate = implode('/', array($dateArray[0], $numericalMonth, $dateArray[2]));

尽管如此,还必须注意,解析数据的一种更简洁的方法是使用
strotime()
date()
函数。

您使用什么对表进行排序-PHP或JavaScript?有很多解决方案,它们都不同。Q:底层数据库是什么?你如何将2012年1月24日按1978年1月24日的格式进行排序?张:你完全了解我的想法。谢谢:)和所有其他回复的人,非常感谢。我正在使用oracle数据库。Mzhang:你能给我看一下strottime和date函数示例吗?请。转换为正常格式。提前谢谢