代码之家  ›  专栏  ›  技术社区  ›  Cunners

如何使用vb.net很好地显示相对时间?

  •  0
  • Cunners  · 技术社区  · 16 年前

    我想以堆栈溢出的方式显示“日期/时间提交”值

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

    我在PHP中看到了很多关于如何实现这一点的答案,但是有人能帮助我使用VB版本吗?

    5 回复  |  直到 16 年前
        1
  •  6
  •   Guffa    16 年前

    首先计算提交后的准确时间:

    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
    
        2
  •  4
  •   Community CDub    8 年前

    回到问题上来 11 , Jeff posted 他们在StackOverflow上使用的代码。它是C语言的,但是到vb.net的转换应该很容易。在这个问题上还有很多其他的好建议。

    就我个人而言,我用山姆·艾伦的密码 prettydates 以前。他模仿了JohnResig写的一些代码,所以它是高质量的东西。再一次,C,但是它 converts 到vb.net非常容易。

        3
  •  3
  •   Eric    16 年前

    你需要一个 DateTime 结构

    您只需将[Now]-[Original Message Time]=差分时间

    你需要 DateTime.Substract 方法

        4
  •  2
  •   JaredPar    16 年前

    你要找的是时间跨度结构。这个结构存储一段时间(顾名思义)。它是减去两个日期时间结构时返回的类型

    Dim start as DateTime = DateTime.Now 
    ...
    ' Some time after the start
    Dim span = DateTime.Now - start
    
        5
  •  2
  •   Niran    16 年前

    我已经发了一篇博文来做这个。但是它是在C中,但是您可以很容易地转换为vb.net。 http://blog.nirandas.com/post/displaying-time-in-relative-format.aspx