PHP按日期按时间顺序显示


PHP Display chronologically by date

我创建了一个将非标准日期存储到数据库中的系统。对于用户创建的每一篇帖子,都会使用以下格式存储日期:月、日、年,即2012年9月15日。我不认为MySQL有办法组织这些数据,所以我必须手动这样做。

我想不出办法来做这件事。

请帮帮我,谢谢

对现有内容进行排序将非常困难。月份是第一个,但它是一个阿尔法,不能这样排序。天是第二天,年是最后一天。

使用MySQL的DATETIMETIMESTAMP字段类型会更好。至少,您可以使用INT(10)将其存储在unix时间戳中,并进行数字排序。

我已经使用unix时间戳方法很多年了,但我正在慢慢地切换到TIMESTAMP,因为您可以使用MySQL的原生日期格式做更多的工作。额外的好处是,您实际上可以查看和理解phpMyAdmin中的日期,而不必不断地编写FROM_UNIXTIME(字段)。当你建立连接时,你只需要告诉MySQL你在哪个时区操作(如果使用TIMESTAMP)。

您应该能够使用strtotime轻松地转换您所拥有的内容。如果找不到,它将返回FALSE。这个过程的顺利程度取决于你是否对日期进行了消毒。如果没有,您可以使用preg_replace进行一些清理。

转换完数据库中的数据后,您可以使用PHP的日期函数或MySQL的date_FORMAT来显示它。

无论你选择做什么,都要避免在PHP中进行排序。让您的数据库尽可能多地进行排序和获取。

在数据库中创建一个char(12)字段,并以YYYMDD 格式存储数据

fore ex.要存储2012年9月15日,您应该将其转换为20120915

使用这种方法,您可以对其进行排序、重新格式化或重新转换。