How to compare dates using XSLT and find the largest one?
While working in SharePoint dataviews, we need to compare dates several times to find out a larger one. While I wondered around this and I see there is no direct function to do this.
I found a workaround which I generally use.
1. Create 2 variables from dates. I’m converting both dates to US format and then to a number with year, month and date sequence to ensure correctness.
<xsl:variable name="ExpiryDate1" select="number(ddwrt:FormatDateTime(string(@ExpirationDate), 1033, ‘yyyyMMdd’))"/>
<xsl:variable name="OtherDate2" select="number(ddwrt:FormatDateTime(string(@OtherDate), 1033, ‘yyyyMMdd’))"/>
2. Compare them to find out which one is greater
<xsl:choose>
<xsl:when test=’ExpirationDate-OtherDate >= 0′>
// Do Something
</xsl:when>
<xsl:otherwise>
// Do Something
</xsl:otherwise>
</xsl:choose>
I don’t claim that this the best solution I have got, while it works very well. If you know anything better, please share!