Umbraco.library: DateDiff () Выдает ошибку при использовании со значением поля типа документа Umbraco Datepicker - PullRequest
0 голосов
/ 12 марта 2012

Я пытаюсь сравнить значение даты, установленное в Datepicker (поле типа документа umbraco) с текущая дата (umbraco.library: FormatDateTime (umbraco.library: CurrentDate ()) в XSLT , предоставленном umbraco cms (версия 4.7) .

Функция, которую я использовал для этого, была

  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"/>   

1 Ответ

2 голосов
/ 13 марта 2012

Сначала вы должны убедиться, что обе даты имеют одинаковый известный формат, поэтому вы должны использовать это:

<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')" />
...