最新最好的方式來獲得SQL Server中的日期時間,並將其轉換爲使用友好的字符串,像這樣:轉換時間,便於閱讀的字符串
如果超過1天> 1天前。
超過7天>1周前
1年前
3分鐘前
56秒前。
等。這可以輕鬆完成嗎?
最新最好的方式來獲得SQL Server中的日期時間,並將其轉換爲使用友好的字符串,像這樣:轉換時間,便於閱讀的字符串
如果超過1天> 1天前。
超過7天>1周前
1年前
3分鐘前
56秒前。
等。這可以輕鬆完成嗎?
最好的辦法是做一個DateTime
擴展方法:
public static class DateTimeExtensions
{
public static string ToRelative(this DateTime value)
{
DateTime now = DateTime.Now; //maybe UtcNow if you're into that
TimeSpan span = new TimeSpan(now.Ticks - value.Ticks);
double seconds = Math.Abs(ts.TotalSeconds);
if (seconds < 60)
return string.Format("{0} seconds ago", span.Seconds);
if (seconds < 2700)
return string.Format("{0} minutes ago", span.Minutes);
if (seconds < 86400)
return string.Format("{0} hours ago", span.Hours);
// repeat for greater "ago" times...
}
}
然後,讓您的來電對您DateTime
值,像這樣:
myDateTime.ToRelative();
是否有可能將asp.net中的datagrid列綁定到TimeStarted.ToAgo()? – sprocket12
應該是,儘管你可能不得不在'ItemDataBound'事件中這樣做。這是Windows還是Web? – hunter
如果你不使用UTC或DateTimeOffset,你在這裏要求麻煩。即使所有的值都是在同一時區生成的,您在夏時制變化周圍的答案也會不準確。另外 - 通過使用'Math.Abs',你排除了你可能想要「從現在起」而不是「之前」的未來日期 –
的重複 - http://stackoverflow.com/問題/ 11 /計算相對時間 – Kami