是否有任何.NET的库与moment.js类似,但是服务器端格式化?
编辑: 所以我可以这样做:someDate.FromNow();并返回如下内容: 2年,明年,3个月,2周,2天,12小时,明天,30分钟,5秒,现在,不到1分钟前,1分钟前,1小时前,昨天,3天前,1周前,1个月前,1个月前,等等。
答案 0 :(得分:6)
答案 1 :(得分:0)
.NET类库有许多日期和时间格式化功能:http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
答案 2 :(得分:0)
你可以使用.Net inbuild功能。
用于解析:
DateTime.Parse Method (String):将日期和时间的指定字符串表示形式转换为其DateTime等效项。
DateTime.ParseExact Method (String, String, IFormatProvider):使用指定的格式和特定于文化的格式信息,将指定的日期和时间字符串表示形式转换为其DateTime等效形式。字符串表示的格式必须与指定的格式完全匹配。
格式化:
Custom Date and Time Format Strings
Standard Date and Time Format Strings
对于DateTime操作:
答案 3 :(得分:0)
我们实现了类似于旧的VB6 DateDiff函数的东西。
这将根据具体单位(年,季,月,日,小时,分钟,秒,毫秒,刻度等)给出两个日期之间的差异。
您可以使用或修改此功能以满足您的需求。我们可以添加一个覆盖,将单位(howToCompare)作为强类型枚举。
您可以在另一种收集“普通英语”中的确切时差的方法中使用此内容,例如:“[DateX]和[DateY]之间的差异为1年,3个月,12天,4小时,23分钟,55秒和213毫秒。“
/// <summary>
/// Same common parameters as the VB6 DateDiff
/// </summary>
/// <example>
/// System.DateTime dt1 = new System.DateTime(1974,12,16);
/// System.DateTime dt2 = new System.DateTime(1973,12,16);
/// Console.Write(DateDiff("yyyy", dt1, dt2).ToString()));
/// Returns: -1
/// </example>
/// <param name="howToCompare">The units to return (m = minutes, s = seconds, t = ticks, mm = milliseconds, yyyy = years, q = quarters, d = days)</param>
/// <param name="startDate">The starting date to compare</param>
/// <param name="endDate">The ending date to compare</param>
/// <returns>The difference in selected units</returns>
public static double DateDiff(string howToCompare, System.DateTime startDate, System.DateTime endDate)
{
double diff = 0;
try
{
System.TimeSpan TS = new System.TimeSpan(startDate.Ticks - endDate.Ticks);
switch (howToCompare.ToLower())
{
case "m":
diff = System.Convert.ToDouble(TS.TotalMinutes);
break;
case "s":
diff = System.Convert.ToDouble(TS.TotalSeconds);
break;
case "t":
diff = System.Convert.ToDouble(TS.Ticks);
break;
case "mm":
diff = System.Convert.ToDouble(TS.TotalMilliseconds);
break;
case "yyyy":
diff = System.Convert.ToDouble(TS.TotalDays / 365);
break;
case "q":
diff = System.Convert.ToDouble((TS.TotalDays / 365) / 4);
break;
default:
//d
diff = System.Convert.ToDouble(TS.TotalDays);
break;
}
}
catch
{
diff = -1;
}
return diff;
}
答案 4 :(得分:0)
看看Noda Time,noda time是一个真正高级日期时间操作的.net库。