【问题标题】:Calculate the elapsed time from a date vb.net?从日期 vb.net 计算经过的时间?
【发布时间】:2017-01-19 16:10:41
【问题描述】:

我需要从某个日期获取经过的时间,例如:

我有这条线

 Mon, 12 Sep 2016 10:20:00 +0100

如果现在的日期时间是:

12/09/2016 10:40:02

我需要得到这个作为最终结果:

20 mins ago

同一个问题的另一个例子可以更好地解释它: 如果我有这个日期:

Sun, 11 Sep 2016 09:18:13 +0100

最终结果应该是:

1 day ago

但如果时间没有变成 24 小时,那么它会输入自该日期以来的小时数,例如:

Sun, 11 Sep 2016 11:18:13 +0100

结果将是:

23 hours ago

如果经过的日期是一个月或几年,则相同, 例如: 对于这个日期:

Sun, 11 Ago 2016 11:18:13 +0100

结果:

1 month ago

还有,

Sun, 11 Ago 2015 11:18:13 +0100

结果:

1 year ago

我怎样才能得到这个?感谢帮助

【问题讨论】:

  • 我必须补充一点,我可以有这个日期:2016 年 6 月 20 日星期一 12:29:09 +0100 和 (+0100) 或其他日期,例如:2016 年 6 月 20 日星期一 15: 40:23 +0200 与此 (+0200)
  • 你为什么不用TimeSapn
  • Pretty Date 会有所帮助:)

标签: c# asp.net vb.net datetime elapsedtime


【解决方案1】:

如果两者属于同一类型,您可以直接从结束日期时间中减去开始日期时间。

var difference = endDateTime - startDateTime;

一旦你得到你的区别,那么它只是格式化你的输出字符串的问题。

参考this

【讨论】:

    【解决方案2】:

    你可以使用Humanizer:

    // For DateTime
    DateTime.UtcNow.AddHours(-30).Humanize() // returns "yesterday"
    DateTime.UtcNow.AddHours(-2).Humanize()  // returns "2 hours ago"
    
    // For TimeSpan
    TimeSpan.FromDays(1).Humanize(precision:2) // "1 day"
    TimeSpan.FromDays(16).Humanize(2) // "2 weeks, 2 days"
    

    您可以在github找到更多示例

    【讨论】:

    • 不错的扩展。
    【解决方案3】:

    您可以使用DateDiff 函数。

    【讨论】:

      猜你喜欢
      • 2014-09-04
      • 2016-05-30
      • 2013-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-20
      • 1970-01-01
      • 2012-01-03
      相关资源
      最近更新 更多