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函数示例吗?请。转换为正常格式。提前谢谢