JavaScript比较不同的日期格式?

问题描述:

我想从文本中提取不同的日期格式,然后比较这些日期,如果它们属于某个时间跨度。假设时间跨度是从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

您需要将它们归一化为一个通用的可比较格式,最合适的是Date objects。对于你的一些格式,(一些浏览器)将能够Date.parse他们,但对于其他人(如"yesterday"),你需要做更复杂的解析(高达NLP?)。如果你知道每个片段的格式,那么最好的办法就是将它们传递给正确的解析算法,否则你需要应用一些启发式算法。