2015-01-09 3 views
2

Я не знаю ни одного ASP.NET, и мне нужна функция в Lua, которая может конвертировать дату.Анализ формата ASP.NET JSON Date для Lua?

дата Пример: "\/Date(1397304050320)\/" ->4/12/2014

Является ли функция ниже переводимые в Lua? Если вы не знаете, Lua, вы можете попробовать перевести соответствующие шаблоны для меня?

Я уже нашел эту функцию:

function FixJsonDates(data) { 
    //microsoft script service perform the following to fix the dates. 
    //json date:\/Date(1317307437667-0400)\/" 
    //javasccript format required: new Date(1317307437667-0400) 

    //copied from micrsoft generated fiel. 
    var _dateRegEx = new RegExp('(^|[^\\\\])\\"\\\\/Date\\((-?[0-9]+)(?:[a-zA-Z]|(?:\\+|-)[0-9]{4})?\\)\\\\/\\"', 'g'); 
    var exp = data.replace(_dateRegEx, "$1new Date($2)"); 
    return eval(exp); 
} 

ответ

1

Чтобы извлечь дату из строки и преобразовать в дату, попробуйте

local s = "some text/Date(1397304050320)/more text" 
local t = s:match("/Date%((%d+)%)/") 
print(os.date("%D",t/1000)) 

В Lua, os.date требует времени в секундах. По-видимому, у вас есть миллисекунды.

+0

@kikito, если вы используете 'local', вы не можете копировать и вставлять его в интерактивный сеанс. – lhf

+0

Но он хочет переопределить функцию, а не использовать код в интерактивном сеансе. – kikito

Смежные вопросы