我从模型中获取日期,并在视图中显示
@Html.DisplayFor(modelItem => item.UpdateDate)
UpdateDate是datetime。(格式2017-01-12 17:16:32.013)
我想要做的是,将它与当前日期进行比较,并显示时间差异。
如果当前日期时间与UpdatedDate之间的差异较小 超过60分钟然后应该说"' X'分钟前" (其中' X'是 差异(分钟)
如果当前日期时间与UpdatedDate之间的差异更大 超过60分钟,不到24小时,它应该说" ' Y'小时' X' 分钟前" (其中' X'是分钟差异,' Y'是小时)
如果当前日期时间和更新日期之间的差异超过24小时,那么它应该说" ' Z'天' Y'小时' X'分钟前" (其中' X'是分钟的差异,' Y'是小时,' Z'是天)
我想在视野中这样做。非常感谢您的帮助。
由于
以下是我这样做的方式,
TimeSpan diff = DateTime.Now - DateTime1;
string formatted = string.Format(
CultureInfo.CurrentCulture,
"{0} days, {1} hours, {2} minutes, {3} seconds",
diff.Days,
diff.Hours,
diff.Minutes,
diff.Seconds);
This works but it will prroduce o/p like
0 days 2 hours 28min (o/p needs to be 2 hours 28min)
or
0 days 0 hours 33 min ( o/p needs to be 33 min)
如何在不设置if else来检查' 0'并获得预期的产出
我们可以在sql server中为所需的格式编写用户定义的函数吗?
答案 0 :(得分:0)
Create FUNCTION GetDateDiff
(
@a datetime
)
RETURNS varchar(100)
AS
BEGIN
Declare @Return varchar(100)
Set @Return = '';
if(Convert(int,(DATEDIFF(day, @a, getdate()))) >= 1)
Begin
Set @Return += Convert(varchar(10),(DATEDIFF(day, @a, getdate()))) + ' Day ';
End
if(Convert(int,(DATEDIFF(HOUR, @a, getdate()))) >= 1)
Begin
Set @Return += Convert(varchar(10),(DATEDIFF(HOUR, @a, getdate()))) + ' Hour ';
End
if(Convert(int,(DATEDIFF(MINUTE, @a, getdate()))) >= 1)
Begin
Set @Return += Convert(varchar(10),(DATEDIFF(MINUTE, @a, getdate()))) + ' Minute ';
End
return @Return
END
所以我在sql中写这个函数,有关改进的建议吗? 此外,当天差大于1时,字符串应为“天”。 (小时和分钟相同)