2011-04-17 98 views
3

我想檢測網頁中字符串的所有時間,然後在php中使用strtotime()來獲取unix時間戳。有沒有一種方法來檢測時間就像使用PHP的字符串。我可以使用正則表達式來處理特定的頁面,但是我正在尋找一些通用的東西,或者至少是能夠檢測大部分時間/日期字符串可能格式的東西?感謝您閱讀本文。如何檢測字符串中字符串的時間

這是很好的,但有限的 Matching a time string with a regular expression

+1

這是否包含「昨天」,「今天」和「明年」等時間或僅僅是數字表示?我也有興趣聽到你爲什麼這樣做,如果你對他們開放,可能會有更好的解決方案(除非這個問題只是一個練習?)。 – 2011-04-17 14:35:25

+0

感謝您的回覆。我正在索引一組網站,其中一些是論壇。我在想,如果我能得到所有的時間字符串,把它們放在一個數組中,對最大值進行排序,它會給我一個可靠的指示,說明頁面是否已更新以及何時更新。不,它不會包括今天,明天或昨天,比這更結構化的東西。 – sam 2011-04-17 14:42:14

+0

對於每天使用整個頁面的html字符串製作sha1並不會比較便宜,並將它們與您保存的最新sha1進行比較? – AJJ 2011-04-17 14:51:26

回答

2

類似的問題在這裏:

How to convert String to Date without knowing the format?

的共識是,你需要知道傳入格式。您也可以嘗試將傳入的字符串與已知格式的謹慎列表進行匹配,以嘗試確定格式。你在這個問題上提到了正則表達式。這些確實是唯一的兩種方式。

+0

所以我需要開發一個我期待的可能的時間/日期格式數組,然後使用正則表達式來檢測它們,然後將strtotime()轉換爲unix。我想時間/日期格式的數組不應該太大,可以手動開發它!希望有一個更加完善的解決方案。 – sam 2011-04-17 14:48:37

+0

這裏使用的方法可能會有幫助:https://github.com/etiennetremel/PHP-Find-Date-in-String – user2761030 2014-10-02 12:07:38

1

你可以試着看看strtotime()本身的底層實現,看看它是如何實現的 - 可能會給你一些想法。

+0

http://us.php.net/manual/en/datetime.formats.php包含所有可能的格式由PHP識別,我想我可以從這裏開始製作一個可能的字符串列表在html中查找。包括所有的正則表達式。感謝您指出這個方向 – sam 2011-04-17 14:59:40