使用 Asp.Net Core 中的 DisplayFormat 来显示经过的时间
Use DisplayFormat in Asp.Net Core to display elapsed time
我有一个 ViewModel class,其中有一列名为 Duration
,其中包含两个 DatetTime
列之间的小时数(在查询中计算):
public Int32 Duration { get; set; }
我希望我可以使用注释来显示经过的时间,以天和小时为单位(例如 0d 15h
)。
这行不通:
[DisplayFormat(DataFormatString = "{0:dd hh}")]
使用TimeSpan
的逻辑:
DateTime s;
DateTime.TryParse("2015-03-18 15:00:42.920",out s);
DateTime e;
DateTime.TryParse("2015-03-19 06:52:44.440",out e);
TimeSpan t = e - s;
Console.WriteLine(String.Format("{0}d {1}h", t.Days, t.Hours));
有没有办法使用数据注释(单独)来实现这一点?
我决定给视图添加一个函数:
public string Elapsed(Int32 duration)
{
TimeSpan t = TimeSpan.FromHours(duration);
return String.Format("{0}d {1}h", t.Days, t.Hours);
}
然后引用它:
<td> @Elapsed(item.Duration) </td>
我有一个 ViewModel class,其中有一列名为 Duration
,其中包含两个 DatetTime
列之间的小时数(在查询中计算):
public Int32 Duration { get; set; }
我希望我可以使用注释来显示经过的时间,以天和小时为单位(例如 0d 15h
)。
这行不通:
[DisplayFormat(DataFormatString = "{0:dd hh}")]
使用TimeSpan
的逻辑:
DateTime s;
DateTime.TryParse("2015-03-18 15:00:42.920",out s);
DateTime e;
DateTime.TryParse("2015-03-19 06:52:44.440",out e);
TimeSpan t = e - s;
Console.WriteLine(String.Format("{0}d {1}h", t.Days, t.Hours));
有没有办法使用数据注释(单独)来实现这一点?
我决定给视图添加一个函数:
public string Elapsed(Int32 duration)
{
TimeSpan t = TimeSpan.FromHours(duration);
return String.Format("{0}d {1}h", t.Days, t.Hours);
}
然后引用它:
<td> @Elapsed(item.Duration) </td>