从String中提取日期

时间:2010-08-21 11:40:43

标签: php datetime string strtotime

我想从输入的任何字符串中提取日期。但不是特定于日期格式(否则我会使用某种正则表达式)

例如

“3周前在非洲拍摄的照片”

php解析器将在“3周前”取代,我很乐意转换它。

有没有人知道执行此操作的最佳方法或任何可以为我执行此操作的库。我确定在输入中循环遍历所有可能的字符串组合并不是一个好主意。

谢谢你们


佩卡说得好。

如果检测到多个字符串与strtotime()函数一起使用,我会执行seom magic。也许设计某种conetext算法。但我不指望你也要担心这一点。我很高兴能够解除对如何提取这个日期位的理解。

更多示例

上周在阿尔伯特音乐厅演出。

5年前在巴黎与Emily一起

我们在 december

的新地点拍摄的所有这些照片
  • 真是这样的东西。

1 个答案:

答案 0 :(得分:1)

我认为你正在使用strtotime。在这种情况下,为什么不解析字符串,并确定可以创建有效时间的最长令牌列表,如“前”,“3”,“周”,“天”等。然后尝试解析列表与strtotime一起玩。如果这不起作用,请尝试下一个最长的有效令牌列表。您显然需要列出所有有效令牌strtotime,但这不应该太难。

因此,在“3周前在非洲拍摄的照片”中,您的代码会找到有效的代币“3”,“周”和“前”,并尝试用strtotime解析它们。

这并不完美,但我认为它会在很多情况下起作用。