问题描述
我正在尝试在 C# 中获得“前”时间,但目前我遇到此错误时正在挣扎。
基本上这就是我正在尝试的。
var dateAgo = $"{DateTime.Now.Subtract(booking.CreatedAt.Date)}";
booking.createdAt.Date
是我的预订日期的保存位置。
我可以在我的 HTML 中显示 @dateAgo
但问题是当我尝试类似
@DateTime.Now.Date.Subtract(booking.CreatedAt.Date).ToString("d")
遗憾的是它不起作用。
解决方法
使用DateTime.Now.Subtract(booking.CreatedAt.Date).Days
Subtract()
产生一个 TimeSpan
,即 incompatible with using the "d" format specifier by itself。尝试其他方法,例如.ToString("%d")
或 .ToString("c")
。
或者,如果需要,TimeSpan 提供了 .Days
、.Hours
等可以替代使用的属性。
DateTime.Subtract()
产生一个 TimeSpan
对象。 ToString("d")
不是标准的 TimeSpan
格式字符串。见Standard TimeSpan
Format Strings。
您需要输出天数的自定义格式字符串 "d"
。为此,将 "d"
更改为 "%d"
:
@DateTime.Now.Date.Subtract(booking.CreatedAt.Date).ToString("%d")
或者您可以简单地从返回的 Days
对象中提取 TimeSpan
,该对象将返回天数:
@DateTime.Now.Date.Subtract(booking.CreatedAt.Date).Days.ToString()