PHP 时间排序问题 急急急!!!

来源:百度知道 编辑:UC知道 时间:2024/06/28 05:19:31
进行时间的排序问题,c_date desc 但是这个c_date是字符串型的,一定要字符串类型的,因为有的新闻虽然是今天加的,时间可以填写2006-12-20
请问这个时间排序我怎么实现呢????
不是在添加的时候做纠正,数据库的记录要一定是这样的。
就是在显示的时候按照这个来排序。

---------------------------------------------------

它是有分钟的也有的啊。。

如 2007-12-25 15:35 是到分钟

------------------------------------
select * from c_info order by strtotime(c_date) desc
这样不行的啊!!!怎么办,,,急急急!!!

______---------------------------------___________

直接输出我试了啊,这是可以的,但是直接用在SQL语句中就无法实行!select * from c_info order by strtotime(c_date) desc

2006-12-20 存储时
先用
addcslashes
再找出-,替换掉,接着order by
我这只是个思路,但是应该可以

没说清楚,但是我认为直接就可以排序,数据库可以比较字符串的大小的;

你确定select * from c_info order by c_date desc
不行吗?我认为是可以的

timestamp(`c_date`) desc

try it.

--------------

让你试这个你试没试?

strtotime是php函数,放sql里当然运行不了.

写个函数专门比较两个日期的大小,将这个日期字符串分成3部分:年月日,逐个比较,直至比较出结果。仅供参考。

用unix的时间戳吧!
比如
strtotime("2008-09-05") 结果就是 1220544000
您可以先用strtotime来转化成Unix时间戳,在来对比啊! 这样,就简单多了!
如果您想转化回去的话,用date('Y-m-d h:i:s','1220544000')啊! 而且,是字符串类型!

既然你补充了,我也补充下, 有没有分钟秒钟都一样!
直接 strtotime("2008-09-05 15:27:30") 这样试试输出,看结果就ok 了啊!!!

存在数据库里的时间用UNIX时间戳为佳
这样排序起来很容易