2013-03-02 107 views
0

我想從文本中提取不同的日期格式,然後比較這些日期,如果它們屬於某個時間跨度。假設時間跨度是從2013年1月1日到2013年1月1日。這是DD/MM/YYYY時間格式。JavaScript比較不同的日期格式?

現在我怎樣才能從文本中提取不同的時間格式。我在這裏有時間格式的例子。

  • 星期二2012年10月23日7:59
  • 2013年2月19日,下午7時32
  • 今天下午9點22
  • 昨天上午09時03
  • 2月28日2013 09:38
  • 昨天16:48
  • 2012年10月8日上午05點41分〇〇秒
  • 2013年2月18日,下午3時17分
  • 13年2月1日,下午12:31
  • 2013年2月12日20:43

我明白這不是一個簡單的任務來執行,但任何一種暗示可以幫助我。

另外我知道這個問題和答案。這將有利於我以後

Compare two dates with JavaScript

另外,在聊天是這樣說的人。

Uwe Günther 
@IceD looks like you need some lib who implements that all :-) 
But ih ave noe clue which one does. Better ask the Stack 

重要

我不想jQuery的這個,因爲我不能在我所使用的是現在執行它。所以只有JS解決方案。

+4

僅供參考,並非所有事情都可以通過jQuery更輕鬆完成。 jQuery主要用於Ajax和DOM操作,你不需要那些。那麼,你是否反對任何圖書館或只是jQuery?基本上你需要的是一組正則表達式和/或狀態機來匹配文本。遇到困難時,不同的模式看起來是相同的,例如, 'MM/DD/YYYY'和'DD/MM/YYYY'。 – 2013-03-02 16:46:24

回答

1

您需要將它們歸一化爲一個通用的可比較格式,最合適的是Date objects。對於你的一些格式,(一些瀏覽器)將能夠Date.parse他們,但對於其他人(如"yesterday"),你需要做更復雜的解析(高達NLP?)。如果你知道每個片段的格式,那麼最好的辦法就是將它們傳遞給正確的解析算法,否則你需要應用一些啓發式算法。