Cómo formatear la columna de fecha en itemstyle.xsl
-
16-10-2019 - |
Pregunta
Estoy editando el itemStyle.xsl para producir mi propio estilo para una parte web de consulta de contenido (CQWP) de la siguiente manera: (NB - 2 líneas de código laterales se muestran como (a) y (b)
<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>
El uso de la línea (a) funciona en que todos los datos se extraen (también he editado el CommonViewfield en WebPart)
Sin embargo, la fecha aparece en este formato: 2011-04-21 10:00:00
Entonces, después de un poco de Google, me encontré con esto: y reemplazé (a) con (b)
El campo de la fecha desapareció ... (suspiro)
¿Qué debo hacer para que la fecha aparezca en el formato correcto?
Solución
Después de buscar años para la respuesta a esto, me topé con minutos después de publicar esta pregunta ...
De todos modos, la respuesta está aquí: http://blogs.msdn.com/b/joshuag/archive/2009/03/25/custom-date-formats-in-sharepoint-xsl.aspx
Resumen:
Referencia al espacio de nombres DDWRT en la parte superior del itemStyle.xls
xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"
Ahora puedes usar el
FormatDate
Funciona en cualquier lugar que quieras:<xsl:template name="Default" match="*" mode="itemstyle">
<xsl:value-of select="ddwrt:FormatDate(@ArticleStartDate, 2057, 3)"/>
</xsl:template>
Otros consejos
Encontré esto como la forma más fácil de limitar el campo de fecha.
< xsl:variable name="cDate" select="@cDate"></xsl:variable>
< xsl:value-of disable-output-escaping="yes" select="substring-before($cDate,' ')"></xsl:value-of>