private static Int64 dt = new DateTime(1970, 1 , 1).Ticks;
///
/// 传入一个DateTime,将其转换为子1970年1月1日起的Int64的数字
///
/// 需要转换的时间
/// Int64的数字时间
public static Int64 Csharp2Json(DateTime time)
{
return Convert.ToInt64((time.Ticks - dt) / 10000);
}
///
/// 将Js/Java时间转换成C#时间
///
/// js/Java时间
/// "1335258540000"
///
public static DateTime Json2Csharp(string jsTime)
{
Int64 longTime = Convert.ToInt64(jsTime) * 10000;
return new DateTime(longTime+=dt).ToLocalTime();
}
上面的代码已包含C# to Js和Js to C#两部分。在前端,我面只需通过下的代码就可以将C#的时间戳转换成具体的时间:
var date=new Date(CsharpTimeTick);
二、直接通过js处理
C#的DateTime被转换成json后,默认格式是这样的: "/Date(1294499956278+0800)/",要转换这种格式的时间,我只要取回中间的“1294499956278”然后直接调用Date() 函数转换即可。