Я хотел бы найти библиотеку actionscript, которая может принимать строки типа:
- Два дня
- 2h
- один месяц
- неделя
и проанализировать их на длительность (возвращая время в некоторой единице).
Кажется, что это делалось так много раз, и я не хотел бы реализовывать такую вещь сам.
Если нет в actionscript, то в python (я могу запустить это на стороне сервера, я думаю).
(обратите внимание, что я ищу синтаксический анализ, а не форматирование.)
Ответ 1
Только для записи Javascript не будет работать в Flex напрямую. Возможно, вы это знаете.
Теперь datejs - действительно классная библиотека. Что вы действительно должны делать, используйте преимущества JS в AS, используя класс externalInterface.
Используйте следующий код в AS3 и не забудьте включить datejs.js в оболочку html, в которой будет использоваться этот SWF файл с AS3.
//--------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
Ответ 2
кто-то задал аналогичный вопрос:
Текст Pretty Date в Flex/Flash/Java/С#
Ответ 3
Я предполагаю, что javascript lib будет работать, поскольку языки AS и JS являются одними и теми же стандартами ECMA с несколькими незначительными отличиями.
http://www.datejs.com/ делает то, что вы хотите в JS.
Ответ 4
Стандартное приложение * nix date(1)
очень хорошо разбирается в таких спецификациях, как вы можете видеть ниже (shell scripting).
$ 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 для дальнейшего просветления.
Ответ 5
Я думаю, что если вы собираетесь сделать это в AS3, лучшим вариантом (как я вижу в других ответах) является использование datejs, портирование кода JavaScript в AS3 не сложно, а также у вас есть преимущество в использовании ExternallInterface
, если вы не хотите его переносить.
Помните, что ActionScript действительно является клоном JavaScript, поэтому вы можете вставить код datejs и изменить небольшие детали синтаксиса, но mantain the core intact
Ответ 6
См. Есть ли какая-либо библиотека python для синтаксического анализа дат и времени с естественного языка?