@Fox Спасибо.
Может кто то просто занимался обтачивал этот навык, вот и обратился.
А с cursor не пробовали клеить bass ?
В отчёте работы скрипта есть время работы. Можно его вызвать в переменную или лог? Без функции OnApplicationStart и вычитания дат new Date(); ?
Захотел реализовать в админке счётчик времени работы каждого потока. Точнее определённой функции у каждого потока.
Поставил перед заходом в цикл нужной мне функции маркер времени:
VAR_TM = new Date();
А уже при срабатывании условий в функции ставится новый маркер времени и вычитается из старого:
VAR_TM2 = new Date();
VAR_TIME_JOB_0 = ((VAR_TM2) - (VAR_TM));
В переменной TIME_JOB_0 получаю миллисекунды прошедшие с одного маркера до другого.
Дак вот из этих миллисекунд надо получить время чч:мм:сс
Пробывал через функции получить часы, минуты и секунды
VAR_H_JT = (VAR_TIME_JOB_0).getHours();
VAR_M_JT=(VAR_TIME_JOB_0).getMinutes();
VAR_S_JT=(VAR_TIME_JOB_0).getSeconds();
Ругается ошибкой : TypeError: Result of expression '(VAR_TIME_JOB_0).getSeconds' [undefined] is not a function
Пробывал перевести полученные миллисекунды в дату и снова получить функцией время..
VAR_TM2 = new Date();
VAR_TIME_JOB_0 = ((VAR_TM2) - (VAR_TM));
VAR_TIME_JOB = new Date(VAR_TIME_JOB_0);
VAR_H_JT = (VAR_TIME_JOB).getHours();
VAR_M_JT=(VAR_TIME_JOB).getMinutes();
VAR_S_JT=(VAR_TIME_JOB).getSeconds();
Но так как в переменной TIME_JOB теперь дата Thu Jan 01 1970 05:06:17 GMT+0500 (RTZ 4) то функция получает значения 5 часов, 6 минут и 17 секунд. Хотя по факту прошло 337951 миллисекунд, тоесть 5 минут 38 секунд.
Пробовал тупым делением, когда полученные миллисекунды делил на 1000 (для секунд), на 60000 (для минут).. В итоге мог получить значение вида 1 час 70 минут 4200 секунд..
Голова уже не варит, такой простой косяк, а упёрся и не даётся..
Через три звезды колена сделал.. Тупо через деление..
VAR_TM2 = new Date();
VAR_TIME_JOB_0 = ((VAR_TM2) - (VAR_TM))/1000;
VAR_H_JT = Math.floor((VAR_TIME_JOB_0)/3600)
VAR_M_JT = Math.floor(VAR_TIME_JOB_0/60)-((VAR_H_JT)*60)
VAR_S_JT = Math.floor(VAR_TIME_JOB_0)-((Math.floor(VAR_TIME_JOB_0/60))*60)
@Viktor said in Переменная времени работы скрипта.:
@Fox так же пришлось реализовать. Не красиво, но работает. Через математический лес
Согласен. Главное что работает :)
Добавил условие отображение минут, если скрипт работает больше минуты. И часов, если скрипт работает больше часа.
VAR_TM2 = new Date();
VAR_TIME_JOB_0 = ((VAR_TM2) - (VAR_TM))/1000;
VAR_H_JT = Math.floor((VAR_TIME_JOB_0)/3600)
VAR_M_JT = Math.floor(VAR_TIME_JOB_0/60)-((VAR_H_JT)*60)
VAR_S_JT = Math.floor(VAR_TIME_JOB_0)-((Math.floor(VAR_TIME_JOB_0/60))*60)
if (VAR_TIME_JOB_0 > 0) VAR_TIME_JOB = VAR_S_JT + "с"
if (VAR_TIME_JOB_0 > 60) VAR_TIME_JOB = VAR_M_JT + "м " + VAR_S_JT + "с"
if (VAR_TIME_JOB_0 > 3600) VAR_TIME_JOB = VAR_H_JT + "ч " + VAR_M_JT + "м " + VAR_S_JT + "с"
Можно ещё добавить отображение нуля до 10..Чтобы отображалось 08, а не просто 8.
Но думаю это лишнее..
@Viktor Чтобы скрипт отрабатывал раз в сутки есть проще способ, у меня много что на нём основано.
VAR_DATE_OLD = new Date()
VAR_DATE_NEW = new Date()
VAR_DATE = ((VAR_DATE_NEW) - (VAR_DATE_OLD)) / 60000
/60000 мне нужны были минуты. Можно было разделить на 3600000 если нужны часы.
3. Далее ставишь IF
[[DATE]] > 5
Чтобы раз в 5 минут выполнялся IF
4. В этом IF в конце обновляешь временной маркер
VAR_DATE_OLD = new Date()
@pavelbond Для работы со временем теперь есть отдельный модуль "дата и время".
5:24 и вот его хотелось бы в секунды. примерно.
Действие Создать Дату, затем Дату в Миллисекунды ну и раздели полученный результат на 1000.
@pavelbond Тема называется "Переменная времени работы скрипта.", причём тут ваш вопрос?
как в басе делить?
Пробовал делать в переменной поставить знак деление( но у вы(


Так бы так хотелось чтоб внутри все системы был конвертер) без костылей так сказать)
Конвертер чего? И про какие костыли идёт речь?
@fox
Спасибо огромное, до этого вопроса делал так раньше( но ничего не вышло((
возможно не поставил experssion.
Спасибо тебе огромное за помощь.
Обычно все с начало делаю методом тыка и читаю форум) а потом тока задаю вопросы)
Кстати проценты так же делаются???
От информации и от не привычки голова кругом идет
@19717 said in Переменная времени работы скрипта.:
@Fox Делаю как написано, выдаёт ошибку в 1 действии если с = new Date() если убираю = new Date() выдаёт ошибку во 2 действии VAR_DATE_OLD
Чегось? Я же выше писал, что сейчас проще использовать модуль "Дата и время"
@19717 said in Переменная времени работы скрипта.:
@Fox Уже кучу вариантов испробывал, но что-то не получается. Помогите пожалуйста разобраться. Вот 1568376464507-1568060461320-project-новый.xml
а что вы пытаетесь сделать?
@19717 said in Переменная времени работы скрипта.:
@Fox Вообще то хочу сделать, чтобы через определённое время скачивался файл, то есть выставить 10 минут и чтобы он через каждые 10 минут скачивался
установите действие "сон" со значением 1000*60*10. Десять в конце означает минуты