Kentico - Get/Format 日期时间
Kentico - Get/Format Date Time
我在页面模板中有以下代码,但不知道如何格式化 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(....)
,但没用。
您不能使用 transformation methods 外部转换。但是,您可以使用 vanilla .NET 方法:
<%= ((DateTime)CurrentDocument.GetValue("ReleaseDate")).ToString("MMMM yyyy") %>
如果 ReleaseDate
可以为空,请确保应用空检查。
你可以像这样直接使用C#:
<%= ((System.DateTime)CMS.DocumentEngine.DocumentContext.CurrentDocument.DocumentModifiedWhen).ToString("MMMM yyyy") %>
<%= ((System.DateTime)CMS.DocumentEngine.DocumentContext.CurrentDocument.GetValue("ReleaseDate")).ToString("MMMM yyyy") %>
这是 Kentico 宏,可以满足您的需求:
{% GetDateTime(CurrentDocument.GetValue("ReleaseDate"), "MMMM yyyy")%}
所提供的所有答案都有效,但是。问题是任何时候您在页面模板或布局中使用 <%= %>
,由于页面生命周期,它都会出错。因此,当您在 Pages 应用程序中以设计模式查看页面时,它将不可见或导致错误。
对于这样的事情,我使用了 2 种解决方案:
- 在您的转换中放置一个 in 语句以检查它是否是最后一个并使用动态内容呈现该文本。
你的声明在你的转换中可能看起来像这样:
<%# If(IsLast(), GetDateTime("ReleaseDate", "MMMM yyyy"), "") %>
- 将内容放在 Web 部件的内容之后部分,并使用 Zach Perry 提到的简单宏。
您的宏代码如下所示:
{% GetDateTime(CurrentDocument.GetValue("ReleaseDate"), "MMMM yyyy")%}
您可以使用:
<%= String.Format("{0:MMMM yyyy}", CurrentDocument.GetValue("ReleaseDate")) %>
我在页面模板中有以下代码,但不知道如何格式化 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(....)
,但没用。
您不能使用 transformation methods 外部转换。但是,您可以使用 vanilla .NET 方法:
<%= ((DateTime)CurrentDocument.GetValue("ReleaseDate")).ToString("MMMM yyyy") %>
如果 ReleaseDate
可以为空,请确保应用空检查。
你可以像这样直接使用C#:
<%= ((System.DateTime)CMS.DocumentEngine.DocumentContext.CurrentDocument.DocumentModifiedWhen).ToString("MMMM yyyy") %>
<%= ((System.DateTime)CMS.DocumentEngine.DocumentContext.CurrentDocument.GetValue("ReleaseDate")).ToString("MMMM yyyy") %>
这是 Kentico 宏,可以满足您的需求:
{% GetDateTime(CurrentDocument.GetValue("ReleaseDate"), "MMMM yyyy")%}
所提供的所有答案都有效,但是。问题是任何时候您在页面模板或布局中使用 <%= %>
,由于页面生命周期,它都会出错。因此,当您在 Pages 应用程序中以设计模式查看页面时,它将不可见或导致错误。
对于这样的事情,我使用了 2 种解决方案:
- 在您的转换中放置一个 in 语句以检查它是否是最后一个并使用动态内容呈现该文本。
你的声明在你的转换中可能看起来像这样:
<%# If(IsLast(), GetDateTime("ReleaseDate", "MMMM yyyy"), "") %>
- 将内容放在 Web 部件的内容之后部分,并使用 Zach Perry 提到的简单宏。
您的宏代码如下所示:
{% GetDateTime(CurrentDocument.GetValue("ReleaseDate"), "MMMM yyyy")%}
您可以使用:
<%= String.Format("{0:MMMM yyyy}", CurrentDocument.GetValue("ReleaseDate")) %>