Parse durations in simple English
我想找到一个可以使用如下字符串的操作脚本库:
- 两天
- 2h
- 一个月
- 一星期
并将它们解析为持续时间(以某个单位返回时间)。
好像以前做过很多次,我不想自己去做。
如果不在actionscript中,那么在python中(我想我可以在服务器端运行它)。
(请注意,我正在寻找解析,而不是格式化…)
据记录,javascript不能直接在flex中工作。我相信你知道这一点。
现在,DateJS是一个非常酷的库,您真正应该做的是,使用中的JS的优点作为使用外部接口类。
在AS3中使用以下代码,并确保在HTML包装器中包含datejs.js,在HTML包装器中将使用此AS3生成的SWF。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | //--------CODE IN AS-----------------// public function returnDate(date:String):void { Alert.show(date); } ExternalInterface.addCallback("returnDate",returnDate); public function parseDate(userInputString:String):void { ExternalInterface.call("parseStringByUser",userInputString); } //------------CODE IN JS----------------// function parseStringByUser(userInputString) { var parsedDate= Date.parse(userInputString); //the line below calls the AS3 function , as AS3 itself exposed it using the ExternalInterface. returnDate(parsedDate); } |
对于外部接口详细信息,您可以查看:http://livedocs.adobe.com/flash/9.0/actionscriptlangrefv3/flash/external/externalinterface.html
看有没有用自然语言解析日期和时间的python库?
我认为,如果您要在AS3中进行移植,最好的选择(如我在其他答案中看到的)是使用datejs,将javascript代码移植到AS3并不难,而且如果您不想移植它,您还可以使用
请记住,actionscript确实是一个javascript克隆体,因此您可以粘贴datejs的代码并更改语法的一些细节,但保持核心完整。
标准的*nix应用程序
1 2 3 | $ date; date -d '1 week 2 days 2 hours' Fri Feb 4 16:31:28 AMT 2011 Sun Feb 13 18:31:28 AMT 2011 |
号
也许你可以看一下GNUCoreutils的源代码以获得进一步的启示。
我猜一个javascript lib可以工作,因为as和js语言都来自相同的ecma标准,有一些细微的差别。
http://www.datejs.com/在JS中执行您想要的操作。
有人在这里问了一个类似的问题:Flex/FLASH/爪哇/C中的漂亮日期文本