<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[перевод строки в time]]></title><description><![CDATA[<p dir="auto">Задача отлавливать подвисшие CLI php скрипты работающих на Win2003.<br />
Process.CPUTime не подошел - если скрипт подвис и ничего не делает, то возвращаются значения 0.<br />
Решил попробовать через</p>
<pre><code>WMI.Query(root\CIMV2,\"select * FROM Win32_Process WHERE Name = 'php.exe'\", CreationDate)
</code></pre>
<p dir="auto">Столкнулся с проблемой как сконвертировать значения этого запроса в объект time чтобы потом просчитать количество секунд которое прошло с начала старта? Значения приходят в виде 20160101235959.123123</p>
<p dir="auto">Пробовал парсить как строку</p>
<pre><code>rawdatetime = string($1);
tm_datetime = localtime();
tm_datetime&lt;-year = int32(substr(rawdatetime,1,4));
tm_datetime&lt;-mon = int32(substr(rawdatetime,5,2));
tm_datetime&lt;-mday = int32(substr(rawdatetime,7,2));
tm_datetime&lt;-hour = int32(substr(rawdatetime,9,2));
tm_datetime&lt;-min = int32(substr(rawdatetime,11,2));
tm_datetime&lt;-sec = int32(substr(rawdatetime,13,2));
</code></pre>
<p dir="auto">но ругается на</p>
<pre><code>Error 4 in line 3: Bad arithmetic conversion
</code></pre>
]]></description><link>https://forum.netxms.org/topic/4205/перевод-строки-в-time</link><generator>RSS for Node</generator><lastBuildDate>Fri, 13 Nov 2026 07:30:22 GMT</lastBuildDate><atom:link href="https://forum.netxms.org/topic/4205.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 01 Jan 2016 11:12:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to перевод строки в time on Sun, 03 Jan 2016 12:38:10 GMT]]></title><description><![CDATA[<p dir="auto">Спасибо, работает!</p>
]]></description><link>https://forum.netxms.org/post/18751</link><guid isPermaLink="true">https://forum.netxms.org/post/18751</guid><dc:creator><![CDATA[slako]]></dc:creator><pubDate>Sun, 03 Jan 2016 12:38:10 GMT</pubDate></item><item><title><![CDATA[Reply to перевод строки в time on Sun, 03 Jan 2016 09:46:25 GMT]]></title><description><![CDATA[<p dir="auto">Да, ступил я. В общем смотри:</p>
<pre><code>LastRunTimestamp = LastRunMin+(LastRunHour*60)+(LastRunDay*LastRunHour*60)+(LastRunMon*LastRunDay*LastRunHour*60)+(LastRunYear*LastRunMon*LastRunDay*LastRunHour*60)
CurrRunTimestamp = CurrMin+(CurrHour*60)+(CurrDay*LastRunHour*60)+(CurrMon*LastRunDay*LastRunHour*60)+(CurrYear*LastRunMon*LastRunDay*LastRunHour*60)
if (CurrDay-LastRunDay==1 || CurrMon-LastRunMon==1 || CurrYear-LastRunYear==1){ // При переходе между сутками, месяцами и годами, делаем поправку
      CurrRunTimestamp = CurrRunTimestamp+60;
}
Delta=CurrRunTimestamp-LastRunTimestamp
</code></pre>
<p dir="auto">Как это работает видно в приложенном файле.<br />
На выходе получаешь реальную дельту в минутах.<br />
Костыль тот еще, но лучше ничего не получалось придумать в тот момент.</p>
<hr />
<p dir="auto"><a href="/assets/uploads/files/smf/0000000002764-demo.xlsx">demo.xlsx</a></p>
]]></description><link>https://forum.netxms.org/post/18750</link><guid isPermaLink="true">https://forum.netxms.org/post/18750</guid><dc:creator><![CDATA[kozlov_ao]]></dc:creator><pubDate>Sun, 03 Jan 2016 09:46:25 GMT</pubDate></item><item><title><![CDATA[Reply to перевод строки в time on Sun, 03 Jan 2016 09:06:48 GMT]]></title><description><![CDATA[<p dir="auto">Сейчас посмотрю... я уже не помню. дело было 2 года назад.</p>
]]></description><link>https://forum.netxms.org/post/18749</link><guid isPermaLink="true">https://forum.netxms.org/post/18749</guid><dc:creator><![CDATA[kozlov_ao]]></dc:creator><pubDate>Sun, 03 Jan 2016 09:06:48 GMT</pubDate></item><item><title><![CDATA[Reply to перевод строки в time on Sun, 03 Jan 2016 08:08:44 GMT]]></title><description><![CDATA[<p dir="auto">А как при такой формуле определить делту в минутах?<br />
Чего-то у меня значения дельты получаются не верны.<br />
Скрипт такой</p>
<pre><code>rawdatetime = string($1);
if(length(rawdatetime) &gt;= 14)
{
	starttime_year = format(substr(rawdatetime,1,4),1,0);
	starttime_mon = format(substr(rawdatetime,5,2),1,0);
	starttime_mday = format(substr(rawdatetime,7,2),1,0);
	starttime_hour = format(substr(rawdatetime,9,2),1,0);
	starttime_min = format(substr(rawdatetime,11,2),1,0);
	trace(0,"PHP start time is " . starttime_year . "-" . string(starttime_mon) . "-" . starttime_mday . " " . starttime_hour . ":" . starttime_min);
	starttime_ts = starttime_min+(starttime_hour*60)+(starttime_mday*starttime_hour*60)+(starttime_mon*starttime_mday*starttime_hour*60)+(starttime_year*starttime_mon*starttime_mday*starttime_hour*60);
	trace(0,"starttime_ts is " . starttime_ts);
	now = localtime();
	now_year = now-&gt;year;
	now_mon = now-&gt;mon+1;
	now_mday = now-&gt;mday;
	now_hour = now-&gt;hour;
	now_min = now-&gt;min;
	trace(0,"Now time is " . now_year . "-" . now_mon . "-" . now_mday . " " . now_hour . ":" . now_min);
	now_ts = now_min+(now_hour*60)+(now_mday*now_hour*60)+(now_mon*now_mday*now_hour*60)+(now_year*now_mon*now_mday*now_hour*60);
	trace(0,"now_ts is " . now_ts);
	delta_min = now_ts - starttime_ts;
	trace(0,"delta_min is " . delta_min);
	return delta_min;
}
return false;
</code></pre>
<p dir="auto">Результат:</p>
<pre><code>[03-Jan-2016 12:52:39.587] [INFO ] PHP start time is 2016-1-3 10:30
[03-Jan-2016 12:52:39.587] [INFO ] starttime_ts is 3633030
[03-Jan-2016 12:52:39.587] [INFO ] Now time is 2016-1-3 12:52
[03-Jan-2016 12:52:39.587] [INFO ] now_ts is 4359652
[03-Jan-2016 12:52:39.587] [INFO ] delta_min is 726622
</code></pre>
<p dir="auto">Или это абстрактная величина, которая будет едина для интервала?  К примеру мне нужно генерить эвент когда дельта больше 60 реальных минут.</p>
]]></description><link>https://forum.netxms.org/post/18748</link><guid isPermaLink="true">https://forum.netxms.org/post/18748</guid><dc:creator><![CDATA[slako]]></dc:creator><pubDate>Sun, 03 Jan 2016 08:08:44 GMT</pubDate></item><item><title><![CDATA[Reply to перевод строки в time on Sat, 02 Jan 2016 11:50:31 GMT]]></title><description><![CDATA[<p dir="auto">ну почему... можно руками вычислять. В одном из проектов тоже не было возможности работать со временем, ноо нужно было высчитывать промежуток между запусками, в минутах. Выкрутились таким вот вычислением:</p>
<pre><code>LastRunMin+(LastRunHour*60)+(LastRunDay*LastRunHour*60)+(LastRunMon*LastRunDay*LastRunHour*60)+(LastRunYear*LastRunMon*LastRunDay*LastRunHour*60)
</code></pre>
<p dir="auto">тут учтены переходы между днями, месяцами и годами.<br />
да, это не timestamp.. это по сути вообще ничего <img src="https://forum.netxms.org/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=72b86a538fc" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:1.4em;width:auto;vertical-align:middle" title=":)" alt="🙂" /> но т.к. нужна была просто дельта по времени, этого вполне хватило.</p>
]]></description><link>https://forum.netxms.org/post/18747</link><guid isPermaLink="true">https://forum.netxms.org/post/18747</guid><dc:creator><![CDATA[kozlov_ao]]></dc:creator><pubDate>Sat, 02 Jan 2016 11:50:31 GMT</pubDate></item><item><title><![CDATA[Reply to перевод строки в time on Fri, 01 Jan 2016 11:49:40 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/alk" aria-label="Profile: alk">@<bdi>alk</bdi></a> said in <a href="/post/18745">перевод строки в time</a>:</p>
<blockquote>
<p dir="auto">Одна из проблем в синтаксисе:</p>
<p dir="auto">tm_datetime&lt;-year = int32(substr(rawdatetime,1,4));</p>
<p dir="auto">должно быть</p>
<p dir="auto">tm_datetime-&gt;year = int32(substr(rawdatetime,1,4));</p>
</blockquote>
<p dir="auto">Так тоже ругался</p>
<pre><code>Error 15 in line 3: Unknown object's attribute
</code></pre>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/alk" aria-label="Profile: alk">@<bdi>alk</bdi></a> said in <a href="/post/18745">перевод строки в time</a>:</p>
<blockquote>
<p dir="auto">Но основная проблема – в nxsl сейчас нет поддержки функции mktime.</p>
</blockquote>
<p dir="auto">точно, получается тогда пока никак.  <img src="https://forum.netxms.org/assets/plugins/nodebb-plugin-emoji/emoji/android/1f61e.png?v=72b86a538fc" class="not-responsive emoji emoji-android emoji--disappointed" style="height:1.4em;width:auto;vertical-align:middle" title=":(" alt="😞" /></p>
]]></description><link>https://forum.netxms.org/post/18746</link><guid isPermaLink="true">https://forum.netxms.org/post/18746</guid><dc:creator><![CDATA[slako]]></dc:creator><pubDate>Fri, 01 Jan 2016 11:49:40 GMT</pubDate></item><item><title><![CDATA[Reply to перевод строки в time on Fri, 01 Jan 2016 11:23:56 GMT]]></title><description><![CDATA[<p dir="auto">Одна из проблем в синтаксисе:</p>
<p dir="auto">tm_datetime&lt;-year = int32(substr(rawdatetime,1,4));</p>
<p dir="auto">должно быть</p>
<p dir="auto">tm_datetime-&gt;year = int32(substr(rawdatetime,1,4));</p>
<p dir="auto">Но основная проблема – в nxsl сейчас нет поддержки функции mktime.</p>
]]></description><link>https://forum.netxms.org/post/18745</link><guid isPermaLink="true">https://forum.netxms.org/post/18745</guid><dc:creator><![CDATA[alk]]></dc:creator><pubDate>Fri, 01 Jan 2016 11:23:56 GMT</pubDate></item></channel></rss>