将 DateTime.Now 转换为时间前 C# [重复]

Posted

技术标签:

【中文标题】将 DateTime.Now 转换为时间前 C# [重复]【英文标题】:Convert DateTime.Now to Time ago C# [duplicate] 【发布时间】:2019-06-15 15:00:25 【问题描述】:

我正在开发简单的 asp.net mvc 网站,该网站显示用户的帖子。 我将帖子详细信息保存在数据库中,包括上传日期。

DateTime dateTimeNow = DateTime.Now;
newPost.Feed_Upload_Date = dateTimeNow;
DB.Post.Add(newPost);
DB.SaveChanges();

现在在我的视图中,当我显示日期时,它会显示类似这样的内容

“2019 年 1 月 21 日下午 4:29:58”

我想要实现的是将数据库中的这个时间转换为“1 天前”之类的内容。 谢谢。

【问题讨论】:

【参考方案1】:

你既可以自己实现,也可以使用Humanizer库:

DateTime.UtcNow.AddHours(-30).Humanize() => "yesterday"
DateTime.UtcNow.AddHours(-2).Humanize() => "2 hours ago"
DateTime.UtcNow.AddHours(30).Humanize() => "tomorrow"
DateTime.UtcNow.AddHours(2).Humanize() => "2 hours from now"
DateTimeOffset.UtcNow.AddHours(1).Humanize() => "an hour from now"

【讨论】:

非常感谢您的快速回复,但是如果我像这样从我的数据库中显示日期时间,我该如何使用它.. @foreach(在 Model.PostV 中发布项目)

@item.Feed_Upload_Date

@item.Feed_Upload_Date.Humanize() 不工作.... 您可能在 Razor 模板中缺少 using 语句。或者创建一个视图模型,您将使用应该显示的值来填充。 @Krishnakumar 我猜你必须将它与时间信息连接起来......

以上是关于将 DateTime.Now 转换为时间前 C# [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中将时间戳转换为时间前,例如 1 天前、2 天前……

PHP,从mysql加载时间戳并转换为时间前字符串

C#中的时间类

使用 C# 将 DateTime 格式转换为 SQL 格式

C# 怎样把 DateTime.Now.Ticks转换为常规日期的形式

C#与mongodb DateTime转换时区相差8小时