只要Ruby的Time.parse方法可以处理它,我允许用户以他们喜欢的任何格式输入日期时间。现在我需要在javascript中比较这些日期时间。有没有相当于Ruby的用于javascript的Time.parse方法?
我需要一些可以解析的东西,例如“2012年10月13日上午8:15”。我尝试过datejs但它无法处理“at”字样。我真的更喜欢只需要一个函数调用的东西。
答案 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的创建者