我想找一个可以采用以下字符串的动作脚本库:
并将它们解析为持续时间(以某个单位返回时间)。
之前似乎已经做了很多次,我不想自己实施这样的事情。
如果不是在actionscript中那么在python中(我可以在服务器端运行它,我猜)。
(请注意我正在寻找解析,而不是格式化..)
答案 0 :(得分:1)
仅供记录,Javascript将无法直接在Flex中运行。我相信你知道这一点。
现在 datejs 是一个非常酷的库。你应该真正做的是,使用externalInterface类在AS中使用JS的优势。
在AS3中使用以下代码,并确保在html包装器中包含datejs.js,其中将使用此AS3生成的swf。
//--------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);
}
对于externalInterface详细信息,您可以查看: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/external/ExternalInterface.html
答案 1 :(得分:0)
有人在这里问了一个类似的问题: Pretty Date Text in Flex / Flash / Java / C#
答案 2 :(得分:0)
我猜javascript lib会起作用,因为AS和JS语言来自相同的ECMA标准,但有一些细微差别..
http://www.datejs.com/在JS中做你想做的事。
答案 3 :(得分:0)
标准的* nix应用程序date(1)
非常擅长解析这些规范,如下所示(shell脚本)。
$ 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
也许您可以查看GNU coreutils源代码以获得进一步的启发。
答案 4 :(得分:0)
我认为如果你打算在AS3中做到最好的选择(正如我在其他答案中看到的那样)是使用datejs,将JavaScript代码移植到AS3并不难,而且你还有使用它的优势ExternallInterface
如果您不想移植它。
请记住,ActionScript确实是一个JavaScript克隆,因此您可以粘贴datejs的代码并更改语法的细节,但保留核心完整
答案 5 :(得分:0)