Спасибо за ссылку на статью, но в ней ничего нужного не нашел. Если кому интересно решил проблему следующим образом:
Код
servertime = getInfoParam("SERVERTIME") -- Текущее время с сервера в формате ЧЧ:ММ:СС
servertime = string.sub(servertime, 1, 2)..string.sub(servertime, 4, 5)..string.sub(servertime, 7, 8) -- Перевод времени в числовой формат
servertime = tonumber(servertime) -- Преобразование в число
Время сервера передается без начального нуля, поэтому предложенный код до 10 часов утра не работает. Вот немного доработанный вариант:
Код
-- Время сервера в числовой формат.
local sT = getInfoParam("SERVERTIME") -- Время сервера в формате Ч:ММ:СС или ЧЧ:ММ:СС
function DToN (s,i,j)
return tonumber(string.sub(s, i, j)) -- Перевод цифр в числа.
end
srvTime = DToN(sT,-2,-1) + DToN(sT,-5,-4)*60 + DToN(sT,-8,-7)*3600 -- Количество секунд с начала суток.
Добрый день, есть рабочий код для вывода метки на график, но он работает только с 10 утра, если запускается до 10 утра то выдает ошибку в пункте 2 - attempt to concatenate a nil value (local 'm')
1. local h,m,t = string.match(getInfoParam("SERVERTIME"),"(%d%d)%p(%d%d)%p(%d%d)") 2. local time_pos = h..m..t
Не подскажете как поправить вывод, если это реально? Спасибо.
%x: (где x - не алфавитно-цифровой символ) представляет символ x. Это стандартный способ кодирования магических символов. Любой не алфавитно-цифровой символ (включая все знаки пунктуации, даже не магические) могут предваряться '%', когда используются для представления себя в шаблоне.
Получаю число типа такого: 202305122200 - где первые четыре числа - год, потом два - месяц, потом 2 - день, следующие два - час, а последние два - минуты.
вместо 4 констант надо одну. Но лучше не соединять дату и время так как при 32 бит будет неточно. Кроме того, дата не меняется в течении торгового дня.