我在页面模板中有以下代码,但不知道如何格式化ReleaseDate
以显示完整的月份和年份,例如2016年10月。请帮忙!
<ul class="icon-list">
<cms:CMSWebPartZone ZoneID="ZoneLinks" runat="server" />
<li class="date inline">Published: <%= CurrentDocument.GetValue("ReleaseDate") %></li>
</ul>
在另一个转换中,我有<%# GetDateTime("ReleaseDate", "MMMM yyyy") %>
并且它有效,但我不知道如何在上述环境中使用它。我尝试了CurrentDocument.GetDateTime(....)
,但没有工作。
答案 0 :(得分:1)
您无法使用transformation methods外部转换。但是,您可以使用vanilla .NET方法:
<%= ((DateTime)CurrentDocument.GetValue("ReleaseDate")).ToString("MMMM yyyy") %>
如果ReleaseDate
可以为null,请确保应用空检查。
答案 1 :(得分:1)
你可以直接使用C#:
<%= ((System.DateTime)CMS.DocumentEngine.DocumentContext.CurrentDocument.DocumentModifiedWhen).ToString("MMMM yyyy") %>
<%= ((System.DateTime)CMS.DocumentEngine.DocumentContext.CurrentDocument.GetValue("ReleaseDate")).ToString("MMMM yyyy") %>
答案 2 :(得分:0)
所提供的所有答案都可行。但是问题是,无论何时在页面模板或布局中使用<%= %>
,由于页面生命周期,它都会使页面出错。因此,当您在“页面”应用程序中以设计模式查看页面时,它将不可见或导致错误。
我使用的解决方案有两种:
您的陈述在转型中看起来像这样:
<%# If(IsLast(), GetDateTime("ReleaseDate", "MMMM yyyy"), "") %>
你的宏代码看起来像这样:
{% GetDateTime(CurrentDocument.GetValue("ReleaseDate"), "MMMM yyyy")%}
答案 3 :(得分:0)
您可以使用:
<%= String.Format("{0:MMMM yyyy}", CurrentDocument.GetValue("ReleaseDate")) %>
答案 4 :(得分:-1)
这是Kentico宏,应该可以满足您的需求:
{% GetDateTime(CurrentDocument.GetValue("ReleaseDate"), "MMMM yyyy")%}