我有一个变量caled Birthday
,其值为1/1/1970
。我需要根据该值计算一个人的年龄。它基本上是来自currentdate()-year
变量的Birthday
的年份。但是我如何在XSLT中实现这一目标?它与sharepoint DateView webpart有关。 Birthday
类型的字段datetime
。我需要使用该字段提取年龄。有人能指出我正确的方向吗?
答案 0 :(得分:0)
我最喜欢XSLT的资源是Dave Pawson's website。一节涉及date manipulations in XSLT 2.0,它似乎对如何做到这一点有非常明确的答案。
基本上,您必须确保日期格式正确,然后只使用日期减法:
xs:dateTime(actual-arrival) - xs:dateTime(xs:date(due-date))
(注意:我没有测试过这个。)
XSLT 1常见问题是at this link。
答案 1 :(得分:0)
你需要的东西在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>
答案 2 :(得分:0)
<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>