我正在努力想出一些与Google日历(甚至是一些gmail消息)类似的内容,其中自由格式文本将被解析并转换为特定的日期/时间。
一些例子(为简单起见,现在是2013年1月1日凌晨1点):
"I should call Mom tomorrow to wish her a happy birthday" -> "tomorrow" = "2013-01-02"
"The super bowl is on Feb 3rd at 6:30pm" -> "Feb 3rd at 6:30" => "2013-02-03T06:30:00Z"
"Remind me to take out the trash on Friday" => "Friday" => "2013-01-04"
首先,我会问这个 - 是否有任何已经存在的开源库(或其中的一部分)。如果没有,你认为我应采取什么样的方法?
我正在考虑几种不同的可能性:
答案 0 :(得分:9)
您可以使用此库:https://github.com/wanasit/chrono
演示:
inputs = ["I should call Mom tomorrow to with her a happy birthday",
"The super bowl is on Feb 3rd at 6:30pm", "Remind me to take out the trash on Friday"];
for(var i = 0; i < inputs.length; i++) {
var input = inputs[i];
var parsed = chrono.parse(input);
console.log(input + " parsed as: " + JSON.stringify(parsed.map(function(p) { return [p.text, p.startDate]; })));
}
输出:
I should call Mom tomorrow to with her a happy birthday parsed as: [["tomorrow","2012-12-31T06:30:00.000Z"]]
The super bowl is on Feb 3rd at 6:30pm parsed as: [["Feb 3rd at 6:30pm","2013-02-03T13:00:00.000Z"]]
Remind me to take out the trash on Friday parsed as: [["Friday","2013-01-04T06:30:00.000Z"]]