我想在客户端使用日期,因为它们位于服务器端
例如 - 如果服务器端的当前时间是'2011-09-21 15:00:00',我希望能够获得具有该值的javascript Date
对象('15:00:00 '),即使客户处于不同的时区
到目前为止我尝试过的:
假设服务器时间是'15:00:00',客户端时间是'17:00:00',我在客户端获得的Date
对象总是包含'16:00:00',由于某种原因。
这是我尝试过的:
1.将.net DateTime对象发送到客户端(它被序列化为
"Date\12345...\"
),并在客户端将其转换为Date
对象:
function parseServerDate(strDate) {
return new Date(parseInt(strDate.substr(6)));
}
将.net DateTime
对象转换为UTC号码:
// returns the number of milliseconds since Jan 1, 1970 (useful for converting C# dates to JS dates)
public static double UnixTicks(this DateTime dateTime)
{
DateTime epoch = new DateTime(1970, 1, 1);
DateTime d2 = dateTime.ToUniversalTime();
TimeSpan ts = new TimeSpan(d2.Ticks - epoch.Ticks);
return ts.TotalMilliseconds;
}
然后创建一个新的Date
对象:
new Date(milliseconds)
或new Date().setTime(milliseconds)
,两者都产生与上述相同的结果。
我是否应该发送服务器的时区偏移量,并处理客户端的差异?
什么是最好的方法呢?
答案 0 :(得分:1)
如果是关于显示,为什么需要Date对象客户端?为什么不简单地让服务器将日期时间作为字符串发送并让客户端按原样显示它?