Иногда при интеграции требуется выводить дату материала прописью. Материалом может быть инфоэлемент или товар, стандартно у этих сущностей в XML передается узел datetime, который содержит дату и время в определенном виде, настроенном в базовой сущности (информационной системе или магазине).
Например, datetime при стандартных настройках может быть таким:
12.01.2016 14:25:01
А нам требуется дату в следующем виде:
12 января 2016
Для этого можем использовать нижеприведенный XSL-подшаблон:
<xsl:template name="show_human_date"> <xsl:param name="datetime" /> <xsl:variable name="date" select="substring-before($datetime, ' ')" /> <xsl:variable name="day" select="substring-before($date, '.')" /> <xsl:variable name="month" select="number(substring-before(substring-after($date, '.'), '.'))" /> <xsl:variable name="year" select="substring-after(substring-after($date, '.'), '.')" /> <xsl:value-of select="$day" /> <xsl:text> </xsl:text> <xsl:choose> <xsl:when test="$month = 1">января</xsl:when> <xsl:when test="$month = 2">февраля</xsl:when> <xsl:when test="$month = 3">марта</xsl:when> <xsl:when test="$month = 4">апреля</xsl:when> <xsl:when test="$month = 5">мая</xsl:when> <xsl:when test="$month = 6">июня</xsl:when> <xsl:when test="$month = 7">июля</xsl:when> <xsl:when test="$month = 8">августа</xsl:when> <xsl:when test="$month = 9">сентября</xsl:when> <xsl:when test="$month = 10">октября</xsl:when> <xsl:when test="$month = 11">ноября</xsl:when> <xsl:when test="$month = 12">декабря</xsl:when> </xsl:choose> <xsl:text> </xsl:text> <xsl:value-of select="$year" /> </xsl:template>
Используем так:
<xsl:call-template name="show_human_date"> <xsl:with-param name="datetime" select="datetime" /> </call-template>
Страницу создал Максим Засорин 03.02.17 в 16:21