xslt - 日期格式

时间:2015-04-16 06:37:08

标签: xslt sharepoint sharepoint-2013

我的xslt代码存在问题,我想知道是否有人可以看看。我认为问题在于日期格式,但我不确定。 我需要将日期时间格式化为日期和月份。

这是我的代码:

<xsl:stylesheet 
 version="1.0" 
exclude-result-prefixes="x d xsl msxsl cmswrt"
xmlns:x="http://www.w3.org/2001/XMLSchema" 
xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" 
xmlns:cmswrt="http://schemas.microsoft.com/WebParts/v3/Publishing/runtime"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime">


<xsl:template name="NewsAndEvents" match="Row[@Style='NewsAndEvents']" mode="itemstyle">
<xsl:variable name="SafeImageUrl">
<xsl:call-template name="OuterTemplate.GetSafeStaticUrl">
  <xsl:with-param name="UrlColumnName" select="'ImageUrl'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="DisplayTitle">
<xsl:call-template name="OuterTemplate.GetTitle">
   <xsl:with-param name="Title" select="@Title"/>
   <xsl:with-param name="UrlColumnName" select="'LinkUrl'"/>
  </xsl:call-template>
</xsl:variable>
<xsl:variable name="ArticleDate">
 <xsl:value-of select="@SongDate"/>
</xsl:variable>

<xsl:if test="string-length($SafeImageUrl) != 0">
<div class="event-contain">
    <div class="event-img pull-right">
        <div class="white-box">
            <h1><xsl:value-of select="ddwrt:FormatDate(string($ArticleDate),1037, 'MMMM')"/></h1>
            <h2><xsl:value-of select="ddwrt:FormatDate(string($ArticleDate),1037, 'd')"/></h2>
        </div>
        <img src="{$SafeImageUrl}" title="{@ImageUrlAltText}">
          <xsl:if test="$ImageWidth != ''">
            <xsl:attribute name="width">
              <xsl:value-of select="$ImageWidth" />
            </xsl:attribute>
          </xsl:if>
          <xsl:if test="$ImageHeight != ''">
            <xsl:attribute name="height">
              <xsl:value-of select="$ImageHeight" />
            </xsl:attribute>
          </xsl:if>
        </img>
    </div>
    <div class="text-sec pull-right">
        <header>
            <hgroup>
                <h3 class="ttl md fnt-bld blue"> <xsl:value-of select="$DisplayTitle"/>  </h3>
                <h4 class="ttl sm fnt-bld blue-mob"> <xsl:value-of select="@SongDescription"/> </h4>
            </hgroup>
        </header>
        <div class="row dynamic-text-contain pull-right">
           <p class="ttl xs">
              <span class="display-on-mob"><xsl:value-of select="@NewsDescription" /></span>
           </p>
        </div>
        <div class="row">
            <div class="display-all read-more-eruim no-mob">
                <div class="display-more open-link">
                    <a>
                        <i class="icon-icons2-50"></i>
                        <p>
                            <span class="btn-text">Show All</span>
                            <i class="icon-icons2-10 left-arrow" id="arrow"></i>
                        </p>
                    </a>
                </div>
            </div>
        </div>
    </div>
    <div class="clearfix"></div>
    <div class="line"></div>
    </div>  
 </xsl:if>

 </xsl:template>
 </xsl:stylesheet>

Tnx帮助Yotam。

我有解决方案如果有任何人遇到此问题:

事情是:

<xsl:value-of select="ddwrt:FormatDate(string($ArticleDate),1037, 'd')"/>

是错误的语法,应该是:

<xsl:value-of select="ddwrt:FormatDateTime(string($ArticleDate),1037, 'd')"/>

现在,另一件事是它将值返回为:dd / mm / yyyy并且我只想要那天,所以我使用了子字符串函数,如下所示:

<xsl:value-of select="substring-before(ddwrt:FormatDateTime(string($ArticleDate),1037, 'd'),'/')"/>

这解决了我这个问题:)

0 个答案:

没有答案