Sharepoint 从生日开始计算xslt中的年龄

Sharepoint 从生日开始计算xslt中的年龄,sharepoint,xslt,date,web-parts,dataview,Sharepoint,Xslt,Date,Web Parts,Dataview,我有一个变量caledbirth,它的值类似于1/1/1970。我需要根据这个值来计算一个人的年龄。它基本上是从currentdate()-year到birth变量的年份。但是如何在XSLT中实现这一点呢?它与sharepoint DateView Web部件相关。有一个datetime类型的字段Birthday。我需要使用该字段提取年龄。有人能给我指出正确的方向吗?我最喜欢的XSLT资源。其中一个部分涉及,并且似乎对如何做到这一点有非常明确的答案 基本上,您必须确保日期格式正确,然后使用日期减

我有一个变量caled
birth
,它的值类似于
1/1/1970
。我需要根据这个值来计算一个人的年龄。它基本上是从
currentdate()-year
birth
变量的年份。但是如何在XSLT中实现这一点呢?它与sharepoint DateView Web部件相关。有一个
datetime
类型的字段
Birthday
。我需要使用该字段提取年龄。有人能给我指出正确的方向吗?

我最喜欢的XSLT资源。其中一个部分涉及,并且似乎对如何做到这一点有非常明确的答案

基本上,您必须确保日期格式正确,然后使用日期减法:

xs:dateTime(actual-arrival) - xs:dateTime(xs:date(due-date))
(注意:我还没有对此进行测试。)


XSLT 1常见问题解答是。

在XSLT 1.0中,您需要的有点复杂,如果您更容易使用javascript,您可以这样做:

<div id="mydate"></div>

<script type="text/javascript">
<![CDATA[

      function datejs(datexslt) {
        var date = datexslt.split('T')[0].split('-');
        var time = datexslt.split('T')[1].split(':');
        return new Date(date[1] + '/' + date[2] + '/' + date[0] + ' ' + time[0] + ':' + time[1] + ':' + time[2].substr(0, 2) + ' UTC'); 
      }

      var utc = datejs(']]><xsl:value-of select="@PublishedDate" /><![CDATA[');

      //$('#mydate').text(utc);

]]>
</script>



1.0因为它是SharePoint,不幸的是,预期结果是什么,源XML文档是什么?请提供。不清楚你对“年龄”的定义是什么——年,年,月,还是?
<xsl:variable name="Age">
    <xsl:choose>
        <xsl:when test="month-from-date(current-date()) > month-from-date($Birthday) or month-from-date(current-date()) = month-from-date($Birthday) and day-from-date(current-date()) >= day-from-date($Birthday)">
            <xsl:value-of select="year-from-date(current-date()) - year-from-date($Birthday)" />
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="year-from-date(current-date()) - year-from-date($Birthday) - 1" />
        </xsl:otherwise>
    </xsl:choose>
</xsl:variable>