Sharepoint 从生日开始计算xslt中的年龄
我有一个变量caledSharepoint 从生日开始计算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资源。其中一个部分涉及,并且似乎对如何做到这一点有非常明确的答案 基本上,您必须确保日期格式正确,然后使用日期减
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>