我正在尝试将Datepicker 中设置的日期值(umbraco文档类型字段)与当前日期进行比较(umbraco.library:FormatDateTime(umbraco.library:CurrentDate) ())在 umbraco cms(版本4.7)提供的 XSLT 中。
我用于此的功能是,
Umbraco.library:DateDiff($expiryDate, $currentDate, 's')
XSLT抛出以下错误,
Error occured
System.FormatException: String was not recognized as a valid DateTime.
at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
at umbraco.library.DateDiff(String firstDate, String secondDate, String diffType)
我确信这与datepicker值的某些问题有关。普通日期字符串而不是datepicker值运行良好。
如果有人遇到这种情况,请帮帮我。
修改: 请参阅下面的XSLT中使用的日期差异代码,
<xsl:variable name="currentDate" select="umbraco.library:FormatDateTime(umbraco.library:CurrentDate(), 'yyyy-MM-dd')"/>
Now:<xsl:value-of select="$currentDate"/><br/>
<xsl:variable name="expiryDate" select="umbraco.library:FormatDateTime($node/expiryDate, 'yyyy-MM-dd')"/>
Exp:<xsl:value-of select="$expiryDate"/><br/> // Where **$node/expiryDate** is my datepicker value
<xsl:variable name="diffInSecs" select="umbraco.library:DateDiff($expiryDate, $currentDate, 's')"/>
Diff :<xsl:value-of select="$diffInSecs"/>
答案 0 :(得分:2)
您必须首先确保两个日期的格式相同,因此您应该使用:
<xsl:variable name="currentDate"
select="umbraco.library:FormatDateTime(umbraco.library:CurrentDate(),
'dd/MM/yyyy')" />
和
<xsl:variable name="formattedExpiryDate"
select="umbraco.library:FormatDateTime($expiryDate, 'dd/MM/yyyy')" />