比较JS中最新日期的最佳方法



我说的是在Twitter api返回其日期的格式中编码的

,例如...

"Tue Jan 12 21:33:28 +0000 2010"

我想到的最好的事情是试图用言论将其切成薄片,以使其变成更像...

20100112213328

但是有一个更好的方法。

javaScript日期将正确解析Twitter日期:

  var d1 = new Date ("Tue Jan 12 21:33:28 +0000 2010")
    , d2 = new Date ("Tue Jan 12 22:33:28 +0000 2010");

您可以使用转换为数字表格的GetTime方法来比较这些方法:

  if (d1.getTime() < d2.getTime())
  {
       //...
  }

或,简单地

if (d1 < d2)
{
}

如果需要,明确胁迫到数字:

if (+(d1) < +(d2))
{
}

您只能使用诸如"Tue Jan 12 21:33:28 +0000 2010"之类的字符串制作一个新的日期对象。

var dateString = "Tue Jan 12 21:33:28 +0000 2010";
var twitterDate = new Date(dateString);

然后,您可以简单地使用&lt;和>进行比较。

var now = new Date();
if (now < twitterDate) {
    // the date is in the future
}

就ecmascript规范5.1而言(请参阅15.9.1.15),唯一支持日期的字符串互换格式为 YYYY-MM-DDTHH:mm:ss.sssZ(以及较短的表单)。

否则(15.9.4.2):

如果字符串不符合该格式,则功能可能会返回到任何特定实现的启发式方法或特定于实现的日期格式。

我将使用基于正则表达式的解决方案,该解决方案短并且可以保证在任何地方工作;依靠用户的浏览器和本地化参数对我来说似乎有些令人毛骨悚然。

相关内容

最新更新