<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; WSC: Script Component для форматирования данных (дата, время, сумма)]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=12413&amp;type=atom" />
	<updated>2017-02-20T16:01:55Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=12413</id>
		<entry>
			<title type="html"><![CDATA[Re: WSC: Script Component для форматирования данных (дата, время, сумма)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=112947#p112947" />
			<content type="html"><![CDATA[<p>Проапдейтил компонент. <br />1) Окончательно пофиксил проблему с кавычками.<br />2) Изменил расширение на wsc<br />3) Изменил обработчик входящего параметра даты.</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2017-02-20T16:01:55Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=112947#p112947</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSC: Script Component для форматирования данных (дата, время, сумма)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=112240#p112240" />
			<content type="html"><![CDATA[<p><strong>mozers</strong>, пасиба ! ) Новую демку заценил. Согласен. Так лучше. )</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2017-02-11T18:15:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=112240#p112240</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSC: Script Component для форматирования данных (дата, время, сумма)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=112238#p112238" />
			<content type="html"><![CDATA[<p>2<strong>Xameleon</strong><br />Как всегда, круто! Буду пользоваться. Код самого Форматтера пока не разбирал, а демку предлагаю маленько переделать:</p><div class="codebox"><pre><code>Date.prototype.format = function(sformat, locale) {return GetObject(&quot;script:file:xslFormatter.sct&quot;).formatDateTime(this, sformat, locale)};

var d = new Date();
WScript.Echo( d.format(&quot;Дата: dd.MM.yyyy mm:ss&quot;) );
WScript.Echo( d.format(&quot;Дата: dd.MM.yyyy&quot;) );
WScript.Echo( d.format(&quot;Короткая дата: dd.MM.yy&quot;) );
WScript.Echo( d.format(&quot;Дата для SQL: yyyyMMdd&quot;) );
WScript.Echo( d.format(&quot;День: dddd&quot;) );
WScript.Echo( d.format(&quot;Месяц: MMMM&quot;) );
WScript.Echo( d.format(&quot;Эра: gg&quot;) );
WScript.Echo( d.format(&quot;Время: HH:mm:ss&quot;) );
WScript.Echo( d.format(&quot;Дата и время для SQL: yyyy-MM-ddTHH:mm:ss&quot;) );
WScript.Echo( d.format(&quot;День недели по итальянски: dddd&quot;, &quot;it&quot;) );
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[mozers]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=4112</uri>
			</author>
			<updated>2017-02-11T16:46:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=112238#p112238</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[WSC: Script Component для форматирования данных (дата, время, сумма)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=111969#p111969" />
			<content type="html"><![CDATA[<p>Приветствую жителей форума. На днях пришлось поковыряться с форматированием данных. Соглашусь, что тема изъезжена вдоль и поперёк. И уже давно существуют готовые инструменты. К примеру для JS существует <a href="https://code.google.com/archive/p/datejs/downloads">date.js</a>. Конечно можно было бы этим ограничиться, но в процессе поиска я наткнулся на страничку, которая меня заинтересовала <a href="http://www.tek-tips.com/viewthread.cfm?qid=1570966">http://www.tek-tips.com/viewthread.cfm?qid=1570966</a>.</p><p>В первом посте предлагалось использовать возможности функций XSL, а во втором использовался объект <strong>MSSTDFMT.StdDataFormat</strong>. К сожалению, со вторым есть сложность в том, что он <span class="bbu">32-битный</span> и на 64-рядной машине нужно либо добавлять его в службу компонентов, дабы OLE сервер обеспечил связь с ним в 64-битном интерпретаторе либо запускать скрипт под 32-битной версией интерпретатора. </p><p>Поэтому я решил поизучать первый вариант с XSL. В результате собрал компонент с функциями:</p><p><strong>formatDateTime</strong>	- форматирования даты и времени (включает в себя поочерёдный вызов <strong>formatTime</strong> и <strong>formatDate</strong>)<br /><strong>formatDate</strong>		- форматирования только даты<br /><strong>formatTime</strong>		- форматирования времени<br /><strong>formatNumber</strong>	- форматирование числа</p><p>Эти функции являются &quot;обёртками&quot; над функциями <strong>xsl</strong> процессора. Маски этих функций можно посмотреть здесь:<br /><strong>format-date</strong>		<a href="https://msdn.microsoft.com/en-us/library/ms256099(v=vs.110).aspx">https://msdn.microsoft.com/en-us/librar … .110).aspx</a><br /><strong>format-time</strong>		<a href="https://msdn.microsoft.com/ru-ru/library/ms256467(v=vs.120).aspx">https://msdn.microsoft.com/ru-ru/librar … .120).aspx</a><br /><strong>format-number</strong>	<a href="https://msdn.microsoft.com/ru-ru/library/ms256225(v=vs.120).aspx">https://msdn.microsoft.com/ru-ru/librar … .120).aspx</a></p><p>Пример вызова на JavaScript</p><div class="codebox"><pre><code>
with (GetObject(&quot;script:file:xslFormatter.wsc&quot;)){
	WScript.Echo(formatDateTime(new Date(),[
		&quot;Дата:\t\t\t dd.MM.yyyy&quot;,
		&quot;Короткая дата:\t\t dd.MM.yy&quot;,
		&quot;Дата для SQL:\t\t yyyyMMdd&quot;,
		&quot;День:\t\t\t dddd&quot;,
		&quot;Месяц:\t\t\t MMMM&quot;,
		&quot;Эра:\t\t\t gg&quot;,
		&quot;Время:\t\t\t HH:mm:ss&quot;,
		&quot;дата и время для SQL:\t yyyy-MM-ddTHH:mm:ss&quot;
	].join(&quot;\r\n&quot;)))
}
</code></pre></div><p>Результат выполнения<br /></p><div class="quotebox"><blockquote><p>Дата:							07.02.2017<br />Короткая дата:				07.02.17<br />Дата для SQL:				20170207<br />День:							вторник<br />Месяц:							Февраль<br />Эра:								наша эра<br />Время:							14:07:19<br />дата и время для SQL:	2017-02-07T14:07:19</p></blockquote></div><p>P.S Так как знания XSL у меня никудышные, то наверняка можно улучшить и упростить код. Если кто-то заинтересуется, то буду благодарен за участие.</p><p><strong>UPD 07.02.2017</strong><br />Добавил поддержку локализации для функций форматирования даты и времени.<br /></p><div class="codebox"><pre><code>
WScript.Echo(GetObject(&quot;script:file:xslFormatter.wsc&quot;).formatDateTime(new Date(),&quot;Сегодня dddd&quot;,&quot;lt&quot;))
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2017-02-07T11:14:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=111969#p111969</id>
		</entry>
</feed>
