Xslt 日期格式

Xslt 日期格式,xslt,sharepoint,sharepoint-2013,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/d

我的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>
谢谢你的帮助

如果有人遇到过这个问题,我有一个解决方案:

问题是:

<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'),'/')"/>

这解决了我的这个问题:

sharepoint中没有XML,但假设值为DateTime您的月有4毫秒,天只有1天。这可能就是问题所在。谢谢,这对我很有帮助。但是你不应该在问题本身中回答你自己的问题,考虑把它变成一个正确的答案并接受它。