سؤال

واني اسعى الى الحصول على عدد الشهور بين تاريخين في ملف XSLT لي مثل ذلك:

<xsl:variable name="now" select="umbraco.library:CurrentDate()"/>
<xsl:value-of select="umbraco.library:DateDiff('2010-12-01', $now, 'm')" />

ومما يؤسف له، وهذا يبدو أن تعطيني عدد الدقائق بين التاريخين بدلا من عدة شهور. لا أستطيع أن أجد أي مكان السلسلة إلى إدخال كمعلمة الثالث لعدة أشهر. هل هناك إشارة لهذا في مكان ما؟ أو كيف يمكنني العثور على عدد من أشهر؟

هل كانت مفيدة؟

المحلول

والأسلوب DateDiff لا يدعم أشهر.

وأنها تدعم سنوات فقط، دقائق أو ثواني.

لحساب الفرق في الأشهر ستحتاج إلى القيام ببعض الرياضيات شعوذة أو استخدام مضمنة ج # طريقة أو الكتابة الخاصة طريقة تمديد XSLT الخاصة بك.

المزيد من المعلومات حول مضمنة ج #

وهناك العديد من البرامج التعليمية لخلق طرق الإرشاد XSLT، بما في ذلك العديد من الدروس الفيديو على انه موقع umbraco الرئيسي.

المزيد من المعلومات حول exensions XSLT

الفيديو Umbraco على ملحقات XSLT

نصائح أخرى

وانتهى بي الأمر كتابة وظيفة بلدي مثل تيم اقترح:

public static int MonthDiff(string date1, string date2)
{
    DateTime dt1 = DateTime.Parse(date1);
    DateTime dt2 = DateTime.Parse(date2);

    return ((dt2.Year - dt1.Year) * 12) + (dt2.Month - dt1.Month);
}

وأنا متأكد من أنه يمكن أن يكون أفضل المعمم، ولكن هذا كان جيدا بما فيه الكفاية بالنسبة لي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top