统一日期格式 - 如何?

时间:2010-11-21 13:31:21

标签: php mysql feeds date-sorting

我有两个信息来源,这些来源的日期格式不同。

来源A Wed,2010年11月17日12:14:10 +0000 (来自rss Feed)

来源B YYYY-MM-DD HH:MM:SS (来自mysql datetime)

请求: 我想按日期订购它们,只检索最后一次出现。

但是,更糟糕的是,存储在数据库中的那些应该考虑到TIME。因为可以在同一天创建几个记录。

我可以控制mysql输出格式以供选择。 我对来自rss feed的输出没有任何控制。

这似乎不是一件容易的事,我想知道:

你能在这里建议什么?

更新 我在考虑: 工作源A像这样: a)创建数月和特定月份数的数组 b)在第一个逗号之后移动两个字符(如果我们计算空格则返回三个)(当天) c)将“Nov”转换为数字(通过使用先前创建的数组); d)检索2010年(不确定如何); e)将年份放在左边,添加一个月份,然后添加一个 - ,放置一天,添加00:00:00

此时,两者都是平等的,这可能会有所帮助...... 但是,我觉得做这一切真的很虚伪......:s有没有聪明的方法? :)

Over-php(zend)/ mysql

非常感谢, MEM

1 个答案:

答案 0 :(得分:3)

如果您可以使用PHP 5.3,我会使用DateTime::createFromFormat()将日期格式规范化为通用格式。

对于mySQL日期:

$date = DateTime::createFromFormat('Y-m-d H:i:s', '2010-11-17');
echo $date->format('Y-m-d H:i:s');

对于RFC 2822格式,此应该工作(从未测试过):

$date = DateTime::createFromFormat('r', 'Wed, 17 Nov 2010 12:14:10 +0000');
echo $date->format('Y-m-d H:i:s');