0

我正在 SharePoint Designer 2010 中编辑 dispform.aspx,以便在公告列表中不显示创建者字段。我注意到过期 ([Expires]) 日期字段已关闭。例子:

我有一个过期日期,2/3/2012但显示为2012-02-03T04:00:00Z

<xsl:with-param name="dateValue" select="@Expires" />

4

1 回答 1

2

不幸的是,XSLT/XPath 1.0 没有日期操作函数(除非您计算类似EXSLT 的“日期和时间”函数,我尽量不计算,因为这些扩展函数并不总是存在)。

如果源和结果格式将保持固定,您可以做一些基本的(虽然丑陋的)字符串组合来完成您想要的。特别是,这个 XPath:

concat(
  format-number(substring(., 6, 2), '0'),
  '/',
  format-number(substring(., 9, 2), '0'),
  '/',
  substring(., 1, 4)
)

......应该做的伎俩。

当这个基于 XSLT 的验证:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output omit-xml-declaration="no" indent="yes" method="text"/>
  <xsl:strip-space elements="*"/>

  <xsl:template match="/*">
     <xsl:value-of
       select="concat(
                 format-number(substring(., 6, 2), '0'),
                 '/',
                 format-number(substring(., 9, 2), '0'),
                 '/',
                 substring(., 1, 4)
               )" />
  </xsl:template>

</xsl:stylesheet>

...适用于这个提议的 XML:

<t>2012-02-03T04:00:00Z</t>

...产生了想要的结果:

2/3/2012
于 2013-06-03T19:25:27.030 回答