2015-12-04 77 views
0

我正在尝试为每个项目解析标题,链接和日期的3个RSS源。虽然标题和链接的xml在RSS(,)中是相同的,但日期(包括时间)在3中的格式不同,但为了创建一个Php对象,我将所有日期汇总在一起显示地图,他们需要格式化相似。 我正在尝试使用Php函数(strtotime - http://php.net/manual/en/function.strtotime.php)创建UNIX时间戳。有谁知道这是否是正确的做法?在Php中设置日期格式

3种日期格式我目前有有:

  • 星期三,2015年11月25日17点20分一十八秒+0000

  • 2015年12月3日21:30:00 GMT

  • 2015-12-10T05:00:00Z

谢谢!

+2

http://php.net/manual/ro/datetime.createfromformat.php –

+0

'strtotime()'不是魔术,它接受[严格格式集]中的字符串(http://php.net/手动/ EN/datetime.formats.php)。按照KA_lin的建议,使用'DateTime :: createFromFormat()'可以更好地提供服务。 – Sammitch

+0

我同意'DateTime'将会更加灵活和可靠,同时需要指出每个字符串的格式。不可预知的非标准格式将难以可靠解析。顺便说一下,'strtotime()'如何与你提供的字符串一起工作的[这里是一个演示](http://sandbox.onlinephpfunctions.com/code/2ff608abcf58fe290d6fde2d2bbdc210c0580e18) - 对前两个字符串没有坏处。 – showdev

回答

0

对于此类解决方案,您是否具有设计模式责任链,请参阅 https://en.wikipedia.org/wiki/Chain-of-responsibility_pattern

链的每个部分都知道如何处理特定的格式。它会检查数据是否与格式一致。如果不是,那么它会将数据传递给链中的下一个类。如果成功,那么过程将停止,您将得到结果。 如果您将来需要更多格式,那么您是否能够在不改变已按设计工作的情况下使用另一个实现来扩展链。

uml的设计模式可以在这里找到: http://www.oodesign.com/chain-of-responsibility-pattern.html