Php 按事件日期排序事件-如何排序?
我有一张桌子,我把所有的事件都放在那里。在该表中,我有一个名为“event_date”的列。创建事件的人员必须键入如下日期:d/m/Y-例如:27/02/2013 但是,当我尝试按事件日期ASC对结果进行排序时,结果并没有按所需的顺序出现。我甚至试着用UNIX\u时间戳(event\u date)来订购它,但它也不能解决我的问题 我怎样才能解决这个问题 有一个解决办法;当一个人创建事件时,我可以将其转换为时间戳。但是,难道不可能像现在这样对它进行正确的排序吗Php 按事件日期排序事件-如何排序?,php,date,sorting,Php,Date,Sorting,我有一张桌子,我把所有的事件都放在那里。在该表中,我有一个名为“event_date”的列。创建事件的人员必须键入如下日期:d/m/Y-例如:27/02/2013 但是,当我尝试按事件日期ASC对结果进行排序时,结果并没有按所需的顺序出现。我甚至试着用UNIX\u时间戳(event\u date)来订购它,但它也不能解决我的问题 我怎样才能解决这个问题 有一个解决办法;当一个人创建事件时,我可以将其转换为时间戳。但是,难道不可能像现在这样对它进行正确的排序吗 提前感谢。您必须在VARCHAR列中
提前感谢。您必须在VARCHAR列中将日期存储为YYYY/MM/DD,才能使字母数字排序正常工作。
按原样,系统将分类:
27/02/2013
01/03/2013
06/03/2013
像这样:
01/03/2013
06/03/2013
27/02/2013
如果可以将列更改为日期数据类型,则可以将输入格式切换为YYYY-MM-DD
或继续接受DD/MM/YYYY
,并使用:
STR_TO_DATE('01/03/2013','%d/%m/%Y')
若要将值转换为有效日期您的“事件日期”列的数据类型是什么?虽然您可以在排序之前将日期转换为时间戳,但最好将日期存储在日期或时间戳类型的数据库字段中,并使用数据库
order by
为您进行排序。@Raad类型为VARCHAR()应该是日期类型我看不出像y-m-d这样保存日期有什么问题,您可以在mysql中轻松地将其转换为d/m/y。当您选择时,请尝试日期格式(事件日期,“%d/%m/%y”)