So formatieren Sie die Datumsspalte in itemStyle.xsl
-
16-10-2019 - |
Frage
Ich bearbeite den itemStyle.xsl, um mein eigenes Styling für einen Inhaltsabfrage -Web -Teil (CQWP) zu erstellen: (NB - 2 Laterimative Codezeilen werden als (a) und (b) angezeigt
<xsl:template name="MyNewStyle" match="Row[@Style='MyNewStyle']" mode="itemstyle">
<div class="SipAddress">
<xsl:value-of select="@SipAddress" />
</div>
<div class="LinkToolTip">
<xsl:value-of select="@LinkToolTip" />
</div>
<div class="OpenInNewWindow">
<xsl:value-of select="@OpenInNewWindow" />
</div>
<div class="OnClickForWebRendering">
<xsl:value-of select="@OnClickForWebRendering" />
</div>
<div>
<table width="100%" >
<tr>
<td width="45%" ><xsl:value-of select="@Title" /></td>
<td width="33%"><xsl:value-of select="@Location" /></td>
(A) <td width="32%"><xsl:value-of select="@EventDate"/></td>
(B) <td width="32%"><xsl:value-of select="msxsl:format-date(@EventDate, 'dd/mm/yyyy h:mm')"/></td>
</tr>
</table>
</div>
Die Verwendung von Zeile (a) funktioniert darin, dass alle Daten durchgezogen werden (ich habe auch das CommonViewfield im Webpart bearbeitet)
Das Datum erscheint jedoch in diesem Format: 2011-04-21 10:00:00
Also stieß ich nach ein wenig Googeln auf das: und ersetzte (a) durch (b)
Das Datumsfeld verschwand ... (Seufz)
Was muss ich tun, damit das Datum im richtigen Format angezeigt wird?
Lösung
Nachdem ich nach Altersgruppen nach der Antwort gesucht hatte, bin ich Minuten nach dem Posten dieser Frage gestoßen ...
Wie auch immer, die Antwort lautet hier: http://blogs.msdn.com/b/joshuag/archive/2009/03/25/custom-date-formats-in-in-sharepoint-xsl.aspx
Zusammenfassung:
Verweisen Sie auf den DDWRT -Namespace oben im ElementStyle.xls
xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"
Jetzt können Sie die verwenden
FormatDate
Funktionieren Sie überall, wo Sie möchten:<xsl:template name="Default" match="*" mode="itemstyle">
<xsl:value-of select="ddwrt:FormatDate(@ArticleStartDate, 2057, 3)"/>
</xsl:template>
Andere Tipps
Ich fand dies den einfachsten Weg, um das Datumsfeld zu begrenzen.
< xsl:variable name="cDate" select="@cDate"></xsl:variable>
< xsl:value-of disable-output-escaping="yes" select="substring-before($cDate,' ')"></xsl:value-of>