如何使用VB.NET很好地显示相对时间?

时间:2009-06-26 22:15:10

标签: vb.net datetime

我希望以与Stack Overflow

相同的方式显示“提交日期/时间”值

例如* 2小时前     * 3天前     *一个月前

我在PHP中看到了如何做到这一点的广泛答案,但有人可以帮助我使用VB版本吗?

5 个答案:

答案 0 :(得分:6)

首先计算自提交以来的确切时间:

Dim t As TimeSpan = DateTime.Now - submittedTime

然后,您决定要用于显示结果的间隔。例如:

If t.TotalSeconds < 60 Then
   display = "Less than a minute ago"
ElseIf t.TotalMinutes < 60 Then
   display = t.Minutes.ToString() + " minutes ago"
ElseIf ...
   ... and so on
End If

答案 1 :(得分:4)

一直回到问题11Jeff posted他们在stackoverflow上使用的代码。它在c#中,但转换到vb.net应该很容易。在这个问题上还有很多其他好的建议。

就个人而言,我之前使用过Sam Allen的代码来获取prettydates。他模仿了John Resig编写的一些代码,所以它的质量很好。再一次,c#,但它很容易converts到vb.net。

答案 2 :(得分:3)

您需要DateTime结构

你简化减去[现在] - [原始消息时间] =差异时间

您需要DateTime.Substract方法

答案 3 :(得分:2)

您正在寻找的是TimeSpan结构。这种结构存储了一段时间(顾名思义)。它是减去两个DateTime结构时返回的类型

Dim start as DateTime = DateTime.Now 
...
' Some time after the start
Dim span = DateTime.Now - start

答案 4 :(得分:2)

我发布了一篇博文来做这件事。但是它在C#中,但您可以轻松转换为vb.net http://blog.nirandas.com/post/displaying-time-in-relative-format.aspx