1

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

我想不出一种方法来做到这一点。

请帮帮我,谢谢。

4

2 回答 2

2

对你拥有的东西进行分类将非常困难。月份是第一个,但它是一个 alpha 版本,不能这样排序。日为第二,年为最后。

DATETIME使用 MySQL或TIMESTAMP字段类型会更好。至少,您可以将其存储为 unix 时间戳INT(10)并按数字排序。

多年来我一直在使用 unix 时间戳方法,但我正在慢慢切换,TIMESTAMP因为您可以使用 MySQL 的本机日期格式做更多事情。作为额外的奖励,您实际上可以查看和理解 phpMyAdmin 中的日期,而无需不断编写 FROM_UNIXTIME(field)。您只需要在建立连接时告诉 MySQL 您正在操作的时区(如果使用TIMESTAMP)。

您应该能够使用strtotime轻松转换您拥有的内容。FALSE如果它无法弄清楚它会返回。这进展得有多顺利取决于您是否对日期进行了任何清理。如果没有,您可以使用preg_replace进行一些清理。

转换数据库中的数据后,您可以使用 PHP 的date函数或 MySQL 的DATE_FORMAT以您想要的方式显示它。

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

于 2012-09-15T22:22:49.687 回答
-2

在数据库中创建一个 char(12) 字段并以这种格式 YYMMDD 存储您的数据

前。要存储2012 年 9 月 15 日,您应该将其转换为20120915

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

于 2012-09-15T22:36:39.567 回答