Javascript相当于Ruby Time.parse

时间:2012-12-19 18:28:30

标签: javascript ruby

只要Ruby的Time.parse方法可以处理它,我允许用户以他们喜欢的任何格式输入日期时间。现在我需要在javascript中比较这些日期时间。有没有相当于Ruby的用于javascript的Time.parse方法?

我需要一些可以解析的东西,例如“2012年10月13日上午8:15”。我尝试过datejs但它无法处理“at”字样。我真的更喜欢只需要一个函数调用的东西。

4 个答案:

答案 0 :(得分:2)

JavaScript语言对于它接受的日期格式是挑剔的(并且实现方式各不相同),所以没有使用库就没有希望了。

Date.js是您最好的选择;但是,正如你所指出的那样,肯定会有一些格式对用户来说非常有意义,但是图书馆却无法预料到。

要解决此问题,我建议您将Date.js解析器包装在您必须维护的自定义清理功能中:

// using Date.js
function parseDate(str) {
  var wordsToRemove = ['on', 'at'] // ...
    , regex = new RegExp('\\b(' + wordsToRemove.join('|') + ')\\b', 'g');
  return Date.parse(str.replace(regex, ''));
}

答案 1 :(得分:0)

Datejs有一个非常令人印象深刻的东西来处理javascript中的日期

答案 2 :(得分:0)

尝试http://momentjs.com/,最好的时间库!

答案 3 :(得分:0)

这有点晚了,但希望它仍然会有所帮助:

如果您只解析美国语言区域日期字符串,请查看Sherlock.js

唯一的限制是它不支持指定年份或过去的日期。它可以解析'2012年10月13日上午8:15',但它将返回2013年10月13日上午8:15的Date对象,因为它始终向前看。您可以编写一些RegEx,例如/\b20\d\d\b/,以便在需要时自己从字符串中解析出年份。

披露:我是Sherlock.js的创建者