Asp.net Net Razor:将2 DateTime的减法格式转换为特定于字符串的格式
我有1个model.DateTime值(这是我从数据库中得到的),我想表示model DateTime,它是结束时间,DateTime.Now是现在时间Asp.net Net Razor:将2 DateTime的减法格式转换为特定于字符串的格式,asp.net,asp.net-mvc,razor,Asp.net,Asp.net Mvc,Razor,我有1个model.DateTime值(这是我从数据库中得到的),我想表示model DateTime,它是结束时间,DateTime.Now是现在时间 我想将这两个DateTime-s的减法格式设置为特定的字符串格式“dd:hh:mm:ss”编辑的 您只需执行以下操作: DateTime CurrentDateTime = DateTime.Now; item.duration.Subtract(CurrentDateTime).ToString(@"dd\:hh\:mm\:ss"); 希望
我想将这两个DateTime-s的减法格式设置为特定的字符串格式“dd:hh:mm:ss”编辑的 您只需执行以下操作:
DateTime CurrentDateTime = DateTime.Now;
item.duration.Subtract(CurrentDateTime).ToString(@"dd\:hh\:mm\:ss");
希望这将有助于在您的ASP.Net视图页面中,您可以打开razor block并计算两个日期时间类型变量之间的差异
@{
DateTime end = (DateTime)item.close_date_time;
DateTime now = DateTime.Now;
TimeSpan diff = end.Subtract(now);
}
然后,您可以简单地将TimeSpan diff转换为字符串:
@diff.ToString(@"dd\:hh\:mm\:ss")
至此,我已经解决了时差问题,并将其格式化为特定的字符串。A
元素在这里似乎不合适。您可以使用@item.duration.ToString(“dd:hh:mm:ss”)
或使用[DisplayFormat(DataFormatString=“{0:dd:hh:mm:ss}”)]
属性应用于您的属性和@Html.DisplayFor(m=>item.duration)
,但只有当您的属性是DateTime时,这才有效,但有一个问题,我已经设置为标签,因为我发送服务器推送通知,我得到标签,并改变它的内容。当然,如果可能的话,这就是为什么我希望以某种方式将label与此格式一起使用的原因。
是与表单控件关联的元素(点击它会将焦点设置为关联的控件),因此使用它是不正确的。但是您可以始终使用@item.duration.ToString(“dd:hh:mm:ss”)
@StephenMuecke似乎不起作用:当我编写您在评论中提供的部分代码时,我只在屏幕上看到输出:dd:hh:mm:ss?!它只打印未格式化的格式。它工作正常。项的初始值。持续时间
?建议您根据编辑的答案(即.ToString(@“dd\.hh\:mm\:ss”)
)编辑此项,以显示时间跨度所需的格式字符串,答案的第二部分不相关,因为它不是字符串
。就目前情况而言,这个答案是错误的,将被否决voted@Stephen感谢您的关注,但答案已被接受。@Stephen Muecke发布您认为正确的答案!没有意义,只需更新您的答案,使其现在正确:)