我创建了一个全天选择的日历活动(2013年10月24日)。然后我试着拉e.EventStart和e.EventEnd。我的预期结果是EventStart = 10/24/2013 12.00.00 am和
EventEnd = 10/25/2013 12.00.00 am。但是得到的是EventStart = 10/24/2013 12.00.00 am和EventEnd = 10/24/2013 12.00.00 am。
当我尝试使用e.EventStartUtc和e.EventEndUtc时,同样正常。但我不想要utc格式,因为我试图为用户提供ektron时间。
答案 0 :(得分:4)
如果您使用Framework API,WebEventData
类会有一个名为IsAllDay
的属性。您可以使用它来触发显示更改。例如,如果是全日活动并且只显示日期,您可能根本不想显示开始/结束时间。
如果您确实需要为全天活动设置特定的开始/结束时间,则可以使用扩展方法轻松扩展Ektron WebEventData
对象。
public static class WebEventExtensions
{
public static DateTime GetDisplayStartDate(this WebEventData webEvent)
{
if (!webEvent.IsAllDay)
return webEvent.EventStart;
return new DateTime(webEvent.EventStart.Year, webEvent.EventStart.Month, webEvent.EventStart.Day);
}
public static DateTime GetDisplayEndDate(this WebEventData webEvent)
{
if (!webEvent.IsAllDay)
return webEvent.EventEnd;
return new DateTime(webEvent.EventEnd.Year, webEvent.EventEnd.Month, webEvent.EventEnd.Day, 23, 59, 59);
}
}
然后这些方法将出现在对象上。
var eventManager = new WebEventManager();
WebEventData webEvent = eventManager.GetItem(730);
if (webEvent.IsAllDay)
{
// do all-day stuff...
}
var start = webEvent.GetDisplayStartDate();
var end = webEvent.GetDisplayEndDate();