<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://belgen.info/wiki/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AWikidata%2FTestUtils</id>
	<title>Модуль:Wikidata/TestUtils - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://belgen.info/wiki/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AWikidata%2FTestUtils"/>
	<link rel="alternate" type="text/html" href="https://belgen.info/wiki/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wikidata/TestUtils&amp;action=history"/>
	<updated>2026-06-11T08:37:20Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://belgen.info/wiki/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wikidata/TestUtils&amp;diff=448&amp;oldid=prev</id>
		<title>Admin: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="https://belgen.info/wiki/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wikidata/TestUtils&amp;diff=448&amp;oldid=prev"/>
		<updated>2022-12-19T23:45:57Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 23:45, 19 декабря 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://belgen.info/wiki/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wikidata/TestUtils&amp;diff=447&amp;oldid=prev</id>
		<title>wiki&gt;QBA-bot: Защитил страницу Модуль:Wikidata/TestUtils: критический шаблон или модуль (каскадная защита) ([Редактирование=только автоподтверждённые] (бессрочно) [Переименование=только автоподтверждённые] (бессрочно))</title>
		<link rel="alternate" type="text/html" href="https://belgen.info/wiki/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wikidata/TestUtils&amp;diff=447&amp;oldid=prev"/>
		<updated>2020-12-04T10:56:55Z</updated>

		<summary type="html">&lt;p&gt;Защитил страницу &lt;a href=&quot;/wiki/index.php/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wikidata/TestUtils&quot; title=&quot;Модуль:Wikidata/TestUtils&quot;&gt;Модуль:Wikidata/TestUtils&lt;/a&gt;: критический шаблон или модуль (каскадная защита) ([Редактирование=только автоподтверждённые] (бессрочно) [Переименование=только автоподтверждённые] (бессрочно))&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local function splitISO8601( str )&lt;br /&gt;
	if 'table' == type( str ) then&lt;br /&gt;
		if str.args and str.args[1] then&lt;br /&gt;
			str = '' .. str.args[1]&lt;br /&gt;
		else&lt;br /&gt;
			return 'unknown argument type: ' .. type( str ) .. ': ' .. table.tostring( str )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local Y, M, D = ( function( str )&lt;br /&gt;
		local pattern = '(%-?%d+)%-(%d+)%-(%d+)T'&lt;br /&gt;
		local Y, M, D = mw.ustring.match( str, pattern )&lt;br /&gt;
		return tonumber( Y ), tonumber( M ), tonumber( D )&lt;br /&gt;
	end )( str );&lt;br /&gt;
	local h, m, s = ( function( str )&lt;br /&gt;
		local pattern = 'T(%d+):(%d+):(%d+)%Z';&lt;br /&gt;
		local H, M, S = mw.ustring.match( str, pattern);&lt;br /&gt;
		return tonumber( H ), tonumber( M ), tonumber( S );&lt;br /&gt;
	end )( str );&lt;br /&gt;
	local oh, om = ( function( str )&lt;br /&gt;
		-- ends with Z, Zulu time&lt;br /&gt;
		if str:sub( -1 ) == 'Z' then&lt;br /&gt;
			return 0, 0&lt;br /&gt;
		end;&lt;br /&gt;
		-- matches ±hh:mm, ±hhmm or ±hh; else returns nils&lt;br /&gt;
		local pattern = '([-+])(%d%d):?(%d?%d?)$';&lt;br /&gt;
		local sign, oh, om = mw.ustring.match( str, pattern );&lt;br /&gt;
		sign, oh, om = sign or '+', oh or '00', om or '00';&lt;br /&gt;
		return tonumber( sign .. oh ), tonumber( sign .. om );&lt;br /&gt;
	end )( str )&lt;br /&gt;
	return {year=Y, month=M, day=D, hour=( h + oh ), min=( m + om ), sec=s};&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function splitDate( str )&lt;br /&gt;
	local Y, M, D = ( function( str )&lt;br /&gt;
		local pattern = &amp;quot;^(%d+)%-(%d+)%-(%d+)$&amp;quot;&lt;br /&gt;
		local Y, M, D = mw.ustring.match( str, pattern )&lt;br /&gt;
		return tonumber( Y ), tonumber( M ), tonumber( D )&lt;br /&gt;
	end )( str );&lt;br /&gt;
	return { year=Y, month=M, day=D, hour=0, min=0, sec=0 };&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.parseTimeFromSnak( snak )&lt;br /&gt;
	if ( snak and snak.datavalue and snak.datavalue.value and snak.datavalue.value.time ) then&lt;br /&gt;
		return tonumber( os.time( splitISO8601( tostring( snak.datavalue.value.time ) ) ) ) * 1000;&lt;br /&gt;
	end&lt;br /&gt;
	return nil;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.parseTimeFromDate( datestring )&lt;br /&gt;
	return tonumber( os.time( splitDate( datestring ) ) ) * 1000&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>wiki&gt;QBA-bot</name></author>
	</entry>
</feed>